use of com.beanit.openiec61850.BdaTimestamp in project open-smart-grid-platform by OSGP.
the class Iec61850ClientDaRTUEventListener method processSingleMeasurementNode.
private void processSingleMeasurementNode(final FcModelNode member, final LogicalNode logicalNode, final ModelNode childNode) {
final BdaFloat32 singleMeasurement = this.getSingleMeasurementModelNode(childNode);
final BdaTimestamp timestampMeasurement = this.getTimestampModelNode(childNode);
String type = member.getName() + "." + childNode.getName();
type += "." + singleMeasurement.getParent().getParent().getName() + "." + singleMeasurement.getParent().getName() + "." + singleMeasurement.getName();
final BigDecimal value = new BigDecimal(singleMeasurement.getFloat(), new MathContext(3, RoundingMode.HALF_EVEN));
final DataSampleDto sample = new DataSampleDto(type, timestampMeasurement.getDate(), value);
logicalNode.getDataSamples().add(sample);
}
use of com.beanit.openiec61850.BdaTimestamp in project open-smart-grid-platform by OSGP.
the class Iec61850ClientDaRTUEventListener method processTotalMeasurementNode.
private void processTotalMeasurementNode(final FcModelNode member, final LogicalNode logicalNode) {
final BdaFloat32 totalMeasurement = this.getTotalMeasurementModelNode(member);
final BdaTimestamp timestampMeasurement = this.getTimestampModelNode(member);
String type = member.getName();
type += "." + totalMeasurement.getParent().getName() + "." + totalMeasurement.getName();
final BigDecimal value = new BigDecimal(totalMeasurement.getFloat(), new MathContext(3, RoundingMode.HALF_EVEN));
final DataSampleDto sample = new DataSampleDto(type, timestampMeasurement.getDate(), value);
logicalNode.getDataSamples().add(sample);
}
use of com.beanit.openiec61850.BdaTimestamp in project Protocol-Adapter-IEC61850 by OSGP.
the class LogicalDevice method setTime.
protected BasicDataAttribute setTime(final String node, final Fc fc, final Date date) {
final BdaTimestamp value = (BdaTimestamp) this.serverModel.findModelNode(this.createNodeName(node), fc);
value.setDate(date);
return value;
}
use of com.beanit.openiec61850.BdaTimestamp in project Protocol-Adapter-IEC61850 by OSGP.
the class NodeContainer method writeDateArray.
public void writeDateArray(final SubDataAttribute child, final Date[] values) throws NodeWriteException {
final Array array = (Array) this.parent.getChild(child.getDescription());
if (array.size() != values.length) {
throw new NodeWriteException(String.format("Invalid array size %d. Size on device is %d", values.length, array.size()));
}
for (int i = 0; i < values.length; i++) {
final BdaTimestamp bdaTimestamp = (BdaTimestamp) array.getChild(i);
bdaTimestamp.setDate(values[i]);
this.writeNode(bdaTimestamp);
}
// Unfortunately writing an array using "this.writeNode(array);"
// doesn't seem to work...
// Therefore the items are written in individual calls...
}
use of com.beanit.openiec61850.BdaTimestamp in project Protocol-Adapter-IEC61850 by OSGP.
the class NodeContainer method getDate.
/**
* Returns a {@link Date} for {@link BdaTimestamp} values
*/
public Date getDate(final SubDataAttribute child) {
final BdaTimestamp dBdaTimestamp = (BdaTimestamp) this.parent.getChild(child.getDescription());
if (dBdaTimestamp == null) {
LOGGER.error("BdaTimeStamp is null, most likely attribute: {} does not exist");
}
LOGGER.info("device: {}, {} has value {}", this.deviceIdentification, child.getDescription(), dBdaTimestamp.getDate());
return dBdaTimestamp.getDate();
}
Aggregations