Skip to content

Commit

Permalink
Updates on the code to fix the auto rebasing mistakes
Browse files Browse the repository at this point in the history
  • Loading branch information
CesarCoelho committed Feb 23, 2023
1 parent 7bed2f5 commit 871b4f9
Show file tree
Hide file tree
Showing 12 changed files with 1,389 additions and 1,802 deletions.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -50,80 +50,84 @@
* @author Tanguy Soto
*/
public class OBSWParameterManager {
/**
* The logger
*/
private static final Logger LOGGER = Logger.getLogger(OBSWParameterManager.class.getName());

/**
* Default OBSW parameter report interval (seconds)
*/
private static final int DEFAULT_REPORT_INTERVAL = 5;

/**
* Helper to read the OBSW parameter from datapool.
*/
private final ParameterLister parameterLister;

/**
* Maps each parameter proxy (object instance id of the ParameterIdentity in the supervisor) to
* the OBSW parameter it represents.
*/
private Map<Long, OBSWParameter> proxyIdsToOBSWParams;

/**
* Provides the OBSW parameter values
*/
private OBSWParameterValuesProvider valuesProvider;

public OBSWParameterManager(InputStream datapool)
throws IOException, JAXBException, XMLStreamException {
// Read from provided inputstreams
parameterLister = new ParameterLister(datapool);

// Initialize the parameters proxies to OBSW parameter maps
proxyIdsToOBSWParams = new HashMap<>();

// Instantiate the value provider
HashMap<Identifier, OBSWParameter> parameterMap = parameterLister.getParameters();
String defaultClass = "esa.mo.nmf.nanosatmosupervisor.parameter.DummyValuesProvider";
String valuesProviderClass = System.getProperty("nmf.supervisor.parameter.valuesprovider.impl", defaultClass);

try {
Constructor<?> c = Class.forName(valuesProviderClass).getConstructor(parameterMap.getClass());
valuesProvider = (OBSWParameterValuesProvider) c.newInstance(new Object[] {parameterMap});
} catch (Exception e) {
LOGGER.log(Level.SEVERE,
"Error initializing the values provider. Using dummy values provider.", e);
valuesProvider = new DummyValuesProvider(parameterMap);

/**
* The logger
*/
private static final Logger LOGGER = Logger.getLogger(OBSWParameterManager.class.getName());

/**
* Default OBSW parameter report interval (seconds)
*/
private static final int DEFAULT_REPORT_INTERVAL = 5;

/**
* Helper to read the OBSW parameter from datapool.
*/
private final ParameterLister parameterLister;

/**
* Maps each parameter proxy (object instance id of the ParameterIdentity in
* the supervisor) to the OBSW parameter it represents.
*/
private Map<Long, OBSWParameter> proxyIdsToOBSWParams;

/**
* Provides the OBSW parameter values
*/
private OBSWParameterValuesProvider valuesProvider;

public OBSWParameterManager(InputStream datapool)
throws IOException, JAXBException, XMLStreamException {
// Read from provided inputstreams
parameterLister = new ParameterLister(datapool);

// Initialize the parameters proxies to OBSW parameter maps
proxyIdsToOBSWParams = new HashMap<>();

// Instantiate the value provider
HashMap<Identifier, OBSWParameter> parameterMap = parameterLister.getParameters();
String defaultClass = "esa.mo.nmf.nanosatmosupervisor.parameter.DummyValuesProvider";
String valuesProviderClass = System.getProperty("nmf.supervisor.parameter.valuesprovider.impl", defaultClass);

try {
Constructor<?> c = Class.forName(valuesProviderClass).getConstructor(parameterMap.getClass());
valuesProvider = (OBSWParameterValuesProvider) c.newInstance(new Object[]{parameterMap});
} catch (Exception e) {
LOGGER.log(Level.SEVERE,
"Error initializing the values provider. Using dummy values provider.", e);
valuesProvider = new DummyValuesProvider(parameterMap);
}
}

/**
* Registers proxies for the OBSW parameters using the provided registration object.
* Registers proxies for the OBSW parameters using the provided registration
* object.
*
* @param registrationObject The registration object
*/
public void registerParametersProxies(MCRegistration registrationObject) {
// Sort parameters by id
List<OBSWParameter> parameters = new ArrayList<>(parameterLister.getParameters().values());
List<OBSWParameter> parameters
= new ArrayList<>(parameterLister.getParameters().values());
parameters.sort(Comparator.comparing(OBSWParameter::getId));

// Create the parameter proxies definitions
ParameterDefinitionDetailsList paramDefs = new ParameterDefinitionDetailsList();
IdentifierList paramIdentifiers = new IdentifierList();

for (OBSWParameter param : parameters) {
paramDefs.add(new ParameterDefinitionDetails(param.getDescription(), HelperAttributes
.attributeName2typeShortForm(param.getType()).byteValue(), "", false, new Duration(
DEFAULT_REPORT_INTERVAL), null, null));
paramDefs.add(new ParameterDefinitionDetails(param.getDescription(),
HelperAttributes.attributeName2typeShortForm(param.getType()).byteValue(), "", false,
new Duration(DEFAULT_REPORT_INTERVAL), null, null));
paramIdentifiers.add(new Identifier(param.getName()));
}

// Register the parameter proxies
LongList proxyIds = registrationObject.registerParameters(paramIdentifiers, paramDefs);
if (proxyIds == null || proxyIds.size() != parameters.size()) {
LOGGER.log(Level.SEVERE,
"Error while registering OBSW parameters proxies: returned IDs are null or some are missing");
"Error while registering OBSW parameters proxies: returned IDs are null or some are missing");
return;
}
for (int i = 0; i < proxyIds.size(); i++) {
Expand All @@ -133,30 +137,32 @@ public void registerParametersProxies(MCRegistration registrationObject) {

/**
* Returns a value for a given OBSW parameter proxy.
*
*
* @param parameterID ID of the parameter proxy
* @return The value
*/
public Attribute getValue(Long parameterID) {
Identifier obswParamIdentifier = new Identifier(proxyIdsToOBSWParams.get(parameterID).getName());
Identifier obswParamIdentifier
= new Identifier(proxyIdsToOBSWParams.get(parameterID).getName());
return getValue(obswParamIdentifier);
}

/**
* Sets a new value to a given OBSW parameter.
*
*
* @param newRawValue the new value
* @return true if parameter is set, false otherwise.
*/
public Boolean setValue(ParameterRawValue newRawValue) {
Identifier obswParamIdentifier = new Identifier(proxyIdsToOBSWParams.get(newRawValue.getParamInstId())
.getName());
Identifier obswParamIdentifier
= new Identifier(proxyIdsToOBSWParams.get(newRawValue.getParamInstId()).getName());
return setValue(newRawValue.getRawValue(), obswParamIdentifier);
}

/**
* @param parameterID The parameter ID to test
* @return true if the ID corresponds to one of the parameter proxies registered by this class
* @return true if the ID corresponds to one of the parameter proxies
* registered by this class
*/
public boolean isOBSWParameterProxy(Long parameterID) {
return proxyIdsToOBSWParams.containsKey(parameterID);
Expand All @@ -174,7 +180,7 @@ private Attribute getValue(Identifier identifier) {

/**
* Sets a new value for the given OBSW parameter name.
*
*
* @param rawValue The new value of the parameter
* @param identifier Name of the parameter
* @return True if parameter is set, false otherwise.
Expand Down
Loading

0 comments on commit 871b4f9

Please sign in to comment.