use of org.osgpfoundation.osgp.dto.da.iec61850.DataSampleDto in project Protocol-Adapter-IEC61850 by OSGP.
the class DistributionAutomationGetPQValuesRequestMessageProcessor method processPQValue.
private DataSampleDto processPQValue(final ModelNode node) {
Date ts = null;
String type = null;
BigDecimal value = null;
if (node.getChildren() != null) {
ts = this.findBdaTimestampNodeValue(node);
final ModelNode floatNode = this.findBdaFloat32NodeInConstructedDataAttribute(node);
if (floatNode != null) {
type = node.getName() + "." + floatNode.getParent().getName() + "." + floatNode.getName();
value = new BigDecimal(((BdaFloat32) floatNode).getFloat(), new MathContext(3, RoundingMode.HALF_EVEN));
}
}
return new DataSampleDto(type, ts, value);
}
use of org.osgpfoundation.osgp.dto.da.iec61850.DataSampleDto in project Protocol-Adapter-IEC61850 by OSGP.
the class DistributionAutomationGetPQValuesRequestMessageProcessor method processPQValuesFunctionalChildConstraintObject.
private List<DataSampleDto> processPQValuesFunctionalChildConstraintObject(final LogicalNode parentNode, final String childName, final Fc constraint) {
final List<DataSampleDto> data = new ArrayList<>();
final ModelNode node = parentNode.getChild(childName, constraint);
if (Fc.MX == constraint && node.getChildren() != null) {
if (this.nodeHasBdaQualityChild(node)) {
data.add(this.processPQValue(node));
} else {
for (final ModelNode subNode : node.getChildren()) {
data.add(this.processPQValue(node, subNode));
}
}
}
return data;
}
use of org.osgpfoundation.osgp.dto.da.iec61850.DataSampleDto in project Protocol-Adapter-IEC61850 by OSGP.
the class DistributionAutomationGetPQValuesRequestMessageProcessor method processPQValueNodeChildren.
private List<DataSampleDto> processPQValueNodeChildren(final LogicalNode node) {
final List<DataSampleDto> data = new ArrayList<>();
final Collection<ModelNode> children = node.getChildren();
final Map<String, Set<Fc>> childMap = new HashMap<>();
for (final ModelNode child : children) {
if (!childMap.containsKey(child.getName())) {
childMap.put(child.getName(), new HashSet<Fc>());
}
childMap.get(child.getName()).add(((FcModelNode) child).getFc());
}
for (final Map.Entry<String, Set<Fc>> childEntry : childMap.entrySet()) {
final List<DataSampleDto> childData = this.processPQValuesFunctionalConstraintObject(node, childEntry.getKey(), childEntry.getValue());
if (!childData.isEmpty()) {
data.addAll(childData);
}
}
return data;
}
Aggregations