use of com.beanit.openiec61850.BasicDataAttribute in project Protocol-Adapter-IEC61850 by OSGP.
the class RtuSimulator method assertValue.
public void assertValue(final String logicalDeviceName, final String node, final String value) {
final LogicalDevice logicalDevice = this.getLogicalDevice(logicalDeviceName);
// Get a new model copy to see values that have been set on the server.
logicalDevice.refreshServerModel(this.server.getModelCopy());
final ModelNode actual = logicalDevice.getBasicDataAttribute(node);
if (actual == null) {
throw new AssertionError("RTU Simulator does not have expected node \"" + node + "\" on logical device \"" + logicalDeviceName + "\".");
}
if (!(actual instanceof BasicDataAttribute)) {
throw new AssertionError("RTU Simulator value has node \"" + node + "\" on logical device \"" + logicalDeviceName + "\", but it is not a BasicDataAttribute: " + actual.getClass().getName());
}
final BasicDataAttribute expected = this.getCopyWithNewValue((BasicDataAttribute) actual, value);
if (!BasicDataAttributesHelper.attributesEqual(expected, (BasicDataAttribute) actual)) {
throw new AssertionError("RTU Simulator attribute for node \"" + node + "\" on logical device \"" + logicalDeviceName + "\" - expected: [" + expected + "], actual: [" + actual + "]");
}
}
use of com.beanit.openiec61850.BasicDataAttribute in project Protocol-Adapter-IEC61850 by OSGP.
the class RtuSimulator method generateData.
@Scheduled(fixedDelay = 60000)
public void generateData() {
synchronized (this.stopGeneratingValues) {
if (!this.stopGeneratingValues.get()) {
final Date timestamp = new Date();
final List<BasicDataAttribute> values = new ArrayList<>();
for (final LogicalDevice ld : this.logicalDevices) {
values.addAll(ld.getAttributesAndSetValues(timestamp));
}
this.server.setValues(values);
LOGGER.info("Generated values");
}
}
}
use of com.beanit.openiec61850.BasicDataAttribute in project open-smart-grid-platform by OSGP.
the class RtuSimulator method getCopyWithNewValue.
private BasicDataAttribute getCopyWithNewValue(final BasicDataAttribute original, final String value) {
final BasicDataAttribute copy = (BasicDataAttribute) original.copy();
BasicDataAttributesHelper.setValue(copy, value);
return copy;
}
use of com.beanit.openiec61850.BasicDataAttribute in project open-smart-grid-platform by OSGP.
the class UpdateHealthStatusEventListener method updateServerValue.
private void updateServerValue(final ServerSap serverSap) {
LOGGER.debug("updateServerValue");
final ServerModel serverModel = serverSap.getModelCopy();
final ModelNode modelNode = serverModel.findModelNode(HEALTH_NODE, Fc.ST);
if (modelNode != null) {
final ModelNode dataNode = modelNode.getChild(STATUS_VALUE);
if (dataNode != null && dataNode instanceof BdaInt8) {
final List<BasicDataAttribute> changedAttributes = new ArrayList<>();
final BdaInt8 bda = (BdaInt8) dataNode;
bda.setValue(bda.getValue() == OK ? WARNING : (bda.getValue() == WARNING ? ALARM : OK));
changedAttributes.add(bda);
serverSap.setValues(changedAttributes);
}
}
}
use of com.beanit.openiec61850.BasicDataAttribute in project open-smart-grid-platform by OSGP.
the class LogicalDevice method setQuality.
protected BasicDataAttribute setQuality(final LogicalDeviceNode node, final QualityType q) {
final BdaQuality value = (BdaQuality) this.serverModel.findModelNode(this.createNodeName(node), node.getFc());
value.setValue(this.shortToByteArray(q.getValue()));
return value;
}
Aggregations