use of com.alliander.osgp.dto.valueobjects.microgrids.GetDataSystemIdentifierDto in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850PvSystemService method getData.
@Override
public GetDataSystemIdentifierDto getData(final SystemFilterDto systemFilter, final Iec61850Client client, final DeviceConnection connection) throws NodeReadException {
final int logicalDeviceIndex = systemFilter.getId();
LOGGER.info("Get data called for logical device {}{}", DEVICE.getDescription(), logicalDeviceIndex);
final List<MeasurementDto> measurements = new ArrayList<>();
for (final MeasurementFilterDto filter : systemFilter.getMeasurementFilters()) {
final RtuReadCommand<MeasurementDto> command = Iec61850PvCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
measurements.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
return new GetDataSystemIdentifierDto(systemFilter.getId(), systemFilter.getSystemType(), measurements);
}
use of com.alliander.osgp.dto.valueobjects.microgrids.GetDataSystemIdentifierDto in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850RtuDeviceService method handleGetData.
// ========================
// PRIVATE HELPER METHODS =
// ========================
private GetDataResponseDto handleGetData(final DeviceConnection connection, final GetDataDeviceRequest deviceRequest) throws ProtocolAdapterException {
final GetDataRequestDto requestedData = deviceRequest.getDataRequest();
final String serverName = this.getServerName(deviceRequest);
final Function<GetDataResponseDto> function = new Function<GetDataResponseDto>() {
@Override
public GetDataResponseDto apply(final DeviceMessageLog deviceMessageLog) throws Exception {
final Iec61850RtuDeviceReportingService reportingService = new Iec61850RtuDeviceReportingService(serverName);
reportingService.enableReportingOnDevice(connection, deviceRequest.getDeviceIdentification());
final List<GetDataSystemIdentifierDto> identifiers = new ArrayList<>();
for (final SystemFilterDto systemFilter : requestedData.getSystemFilters()) {
final SystemService systemService = Iec61850RtuDeviceService.this.systemServiceFactory.getSystemService(systemFilter);
final GetDataSystemIdentifierDto getDataSystemIdentifier = systemService.getData(systemFilter, Iec61850RtuDeviceService.this.iec61850Client, connection);
identifiers.add(getDataSystemIdentifier);
}
return new GetDataResponseDto(identifiers, null);
}
};
return this.iec61850Client.sendCommandWithRetry(function, deviceRequest.getDeviceIdentification());
}
use of com.alliander.osgp.dto.valueobjects.microgrids.GetDataSystemIdentifierDto in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850BatterySystemService method getData.
@Override
public GetDataSystemIdentifierDto getData(final SystemFilterDto systemFilter, final Iec61850Client client, final DeviceConnection connection) throws NodeReadException {
final int logicalDeviceIndex = systemFilter.getId();
LOGGER.info("Get data called for logical device {}{}", DEVICE.getDescription(), logicalDeviceIndex);
final List<MeasurementDto> measurements = new ArrayList<>();
for (final MeasurementFilterDto filter : systemFilter.getMeasurementFilters()) {
final RtuReadCommand<MeasurementDto> command = Iec61850BatteryCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
measurements.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
final List<ProfileDto> profiles = new ArrayList<>();
for (final ProfileFilterDto filter : systemFilter.getProfileFilters()) {
final RtuReadCommand<ProfileDto> command = Iec61850RtuReadProfileCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
profiles.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
return new GetDataSystemIdentifierDto(systemFilter.getId(), systemFilter.getSystemType(), measurements, profiles);
}
use of com.alliander.osgp.dto.valueobjects.microgrids.GetDataSystemIdentifierDto in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850BoilerSystemService method getData.
@Override
public GetDataSystemIdentifierDto getData(final SystemFilterDto systemFilter, final Iec61850Client client, final DeviceConnection connection) throws NodeReadException {
final int logicalDeviceIndex = systemFilter.getId();
LOGGER.info("Get data called for logical device {}{}", DEVICE.getDescription(), logicalDeviceIndex);
final List<MeasurementDto> measurements = new ArrayList<>();
for (final MeasurementFilterDto filter : systemFilter.getMeasurementFilters()) {
final RtuReadCommand<MeasurementDto> command = Iec61850BoilerCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
measurements.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
final List<ProfileDto> profiles = new ArrayList<>();
for (final ProfileFilterDto filter : systemFilter.getProfileFilters()) {
final RtuReadCommand<ProfileDto> command = Iec61850RtuReadProfileCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
profiles.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
return new GetDataSystemIdentifierDto(systemFilter.getId(), systemFilter.getSystemType(), measurements, profiles);
}
use of com.alliander.osgp.dto.valueobjects.microgrids.GetDataSystemIdentifierDto in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850ChpSystemService method getData.
@Override
public GetDataSystemIdentifierDto getData(final SystemFilterDto systemFilter, final Iec61850Client client, final DeviceConnection connection) throws NodeReadException {
final int logicalDeviceIndex = systemFilter.getId();
LOGGER.info("Get data called for logical device {}{}", DEVICE.getDescription(), logicalDeviceIndex);
final List<MeasurementDto> measurements = new ArrayList<>();
for (final MeasurementFilterDto filter : systemFilter.getMeasurementFilters()) {
final RtuReadCommand<MeasurementDto> command = Iec61850ChpCommandFactory.getInstance().getCommand(filter);
if (command == null) {
LOGGER.warn("Unsupported data attribute [{}], skip get data for it", filter.getNode());
} else {
measurements.add(command.execute(client, connection, DEVICE, logicalDeviceIndex));
}
}
return new GetDataSystemIdentifierDto(systemFilter.getId(), systemFilter.getSystemType(), measurements);
}
Aggregations