From e55b35389611a6721f78b016633a598b4c3aa01d Mon Sep 17 00:00:00 2001 From: gwen-soleil <gwenaelle.abeille@gmail.com> Date: Fri, 6 Jan 2023 11:10:56 +0100 Subject: [PATCH] Fix not supported DevState spectrum (SOLEIL Jira TANGOARCH-745) --- .../tangowrapping/DeviceAttributeWrapper.java | 4 +- .../plugin/PersistencePlugin.java | 46 ++++--------------- .../plugin/persistance/AnyAttribute.java | 10 ++-- 3 files changed, 15 insertions(+), 45 deletions(-) diff --git a/src/main/java/fr/soleil/actiongroup/collectiveaction/components/tangowrapping/DeviceAttributeWrapper.java b/src/main/java/fr/soleil/actiongroup/collectiveaction/components/tangowrapping/DeviceAttributeWrapper.java index 9b3fc57..e345b29 100644 --- a/src/main/java/fr/soleil/actiongroup/collectiveaction/components/tangowrapping/DeviceAttributeWrapper.java +++ b/src/main/java/fr/soleil/actiongroup/collectiveaction/components/tangowrapping/DeviceAttributeWrapper.java @@ -122,7 +122,7 @@ public class DeviceAttributeWrapper { return this.attribute.getQuality(); } - public DevState extractState() throws DevFailed { - return attribute.extractState(); + public DevState[] extractDevStateArray() throws DevFailed { + return attribute.extractDevStateArray(); } } diff --git a/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/PersistencePlugin.java b/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/PersistencePlugin.java index dbefa24..89e53f8 100644 --- a/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/PersistencePlugin.java +++ b/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/PersistencePlugin.java @@ -1,27 +1,3 @@ -/* Synchrotron Soleil - * - * File : PersistencePluginAction.java - * - * Project : TangoParser - * - * Description : - * - * Author : CLAISSE - * - * Original : 25 janv. 07 - * - * Revision: Author: - * Date: State: - * - * Log: PersistencePluginAction.java,v - * - */ - /* - * Created on 25 janv. 07 - * - * To change the template for this generated file go to - * Window>Preferences>Java>Code Generation>Code and Comments - */ package fr.soleil.actiongroup.collectiveaction.onattributes.plugin; import fr.soleil.actiongroup.collectiveaction.components.tangowrapping.DeviceAttributeWrapper; @@ -32,26 +8,20 @@ import fr.soleil.actiongroup.collectiveaction.onattributes.plugin.persistance.Pe /** * An implementation of IPluginAction where the action consists of: - * <UL> + * <UL> * <LI> extracting the attribute's type and value * <LI> storing the attribute * </UL> * The persistence management is delegated to the chosen IPersistenceManager implementation - * @author CLAISSE + * + * @author CLAISSE */ -public class PersistencePlugin implements Plugin -{ - public PersistencePlugin () - { +public class PersistencePlugin implements Plugin { - } - - public void execute ( PluginContext context, String deviceName, DeviceAttributeWrapper attribute ) throws Exception - { - AnyAttribute anyAttribute = new AnyAttribute ( deviceName , attribute ); - - PersistenceContext persistenceContext = context.getPersistenceContext (); + public void execute(PluginContext context, String deviceName, DeviceAttributeWrapper attribute) throws Exception { + AnyAttribute anyAttribute = new AnyAttribute(deviceName, attribute); + PersistenceContext persistenceContext = context.getPersistenceContext(); PersistenceManager manager = persistenceContext.getManager(); - manager.store ( anyAttribute , persistenceContext ); + manager.store(anyAttribute, persistenceContext); } } diff --git a/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/persistance/AnyAttribute.java b/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/persistance/AnyAttribute.java index 240cc8d..aae5838 100644 --- a/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/persistance/AnyAttribute.java +++ b/src/main/java/fr/soleil/actiongroup/collectiveaction/onattributes/plugin/persistance/AnyAttribute.java @@ -111,7 +111,7 @@ public class AnyAttribute { /** * The attribute's State value */ - private DevState rawValueState; + private DevState[] rawValueState; private final int numberOfComponents; @@ -199,8 +199,8 @@ public class AnyAttribute { break; case TangoConst.Tango_DEV_STATE: - rawValueState = attribute.extractState(); - _numberOfComponents = 1; + rawValueState = attribute.extractDevStateArray(); + _numberOfComponents = rawValueState == null ? 0 : rawValueState.length; break; case TangoConst.Tango_DEV_STRING: @@ -270,8 +270,8 @@ public class AnyAttribute { break; case TangoConst.Tango_DEV_STATE: - convertedNumericValuesTable[i] = rawValueState.value(); - convertedStringValuesTable[i] = TangoConst.Tango_DevStateName[rawValueState.value()]; + convertedNumericValuesTable[i] = rawValueState[i].value(); + convertedStringValuesTable[i] = rawValueState[i].value()+""; break; case TangoConst.Tango_DEV_STRING: -- GitLab