use of org.opensmartgridplatform.adapter.protocol.iec61850.infra.networking.Iec61850Connection in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850DeviceConnectionService method readAllValues.
public void readAllValues(final String deviceIdentification) throws NodeReadException {
final Iec61850Connection iec61850Connection = this.fetchIec61850Connection(deviceIdentification);
if (iec61850Connection == null) {
return;
}
final ClientAssociation clientAssociation = iec61850Connection.getClientAssociation();
this.iec61850Client.readAllDataValues(clientAssociation);
}
use of org.opensmartgridplatform.adapter.protocol.iec61850.infra.networking.Iec61850Connection in project Protocol-Adapter-IEC61850 by OSGP.
the class Iec61850DeviceConnectionService method disconnect.
/**
* Closes the {@link ClientAssociation}, send a disconnect request and close
* the socket.
*/
public synchronized void disconnect(final String deviceIdentification) {
LOGGER.info("Trying to disconnect from deviceIdentification: {}", deviceIdentification);
final Iec61850Connection iec61850Connection = this.fetchIec61850Connection(deviceIdentification);
if (iec61850Connection != null) {
iec61850Connection.getClientAssociation().disconnect();
this.removeIec61850Connection(deviceIdentification);
LOGGER.info("Disconnected from deviceIdentification: {}", deviceIdentification);
} else {
LOGGER.info("Unable to disconnect from deviceIdentification: {}, no cached connection was found", deviceIdentification);
}
}
use of org.opensmartgridplatform.adapter.protocol.iec61850.infra.networking.Iec61850Connection in project open-smart-grid-platform by OSGP.
the class Iec61850RtuDeviceService method getData.
@Override
public void getData(final GetDataDeviceRequest deviceRequest, final DeviceResponseHandler deviceResponseHandler) throws JMSException {
try {
final String serverName = this.getServerName(deviceRequest);
final ServerModel serverModel = this.connectAndRetrieveServerModel(deviceRequest, serverName);
final ClientAssociation clientAssociation = this.iec61850DeviceConnectionService.getClientAssociation(deviceRequest.getDeviceIdentification());
final GetDataResponseDto getDataResponse = this.handleGetData(new DeviceConnection(new Iec61850Connection(new Iec61850ClientAssociation(clientAssociation, null), serverModel), deviceRequest.getDeviceIdentification(), deviceRequest.getOrganisationIdentification(), serverName), deviceRequest);
if (getDataResponse == null) {
throw new ProtocolAdapterException("No valid response received during GetData");
}
final GetDataDeviceResponse deviceResponse = new GetDataDeviceResponse(deviceRequest, DeviceMessageStatus.OK, getDataResponse);
deviceResponseHandler.handleResponse(deviceResponse);
} catch (final ConnectionFailureException se) {
LOGGER.error("Could not connect to device after all retries", se);
final EmptyDeviceResponse deviceResponse = new EmptyDeviceResponse(deviceRequest, DeviceMessageStatus.FAILURE);
deviceResponseHandler.handleConnectionFailure(se, deviceResponse);
} catch (final Exception e) {
LOGGER.error("Unexpected exception during Get Data", e);
final EmptyDeviceResponse deviceResponse = new EmptyDeviceResponse(deviceRequest, DeviceMessageStatus.FAILURE);
deviceResponseHandler.handleException(e, deviceResponse);
}
}
use of org.opensmartgridplatform.adapter.protocol.iec61850.infra.networking.Iec61850Connection in project open-smart-grid-platform by OSGP.
the class Iec61850DaRtuDeviceService method getData.
@Override
public void getData(final DaDeviceRequest deviceRequest, final DeviceResponseHandler deviceResponseHandler, final DaRtuDeviceRequestMessageProcessor messageProcessor) throws JMSException {
try {
final String serverName = this.getServerName(deviceRequest);
final ServerModel serverModel = this.connectAndRetrieveServerModel(deviceRequest, serverName);
final ClientAssociation clientAssociation = this.iec61850DeviceConnectionService.getClientAssociation(deviceRequest.getDeviceIdentification());
final Serializable dataResponse = this.handleGetData(new DeviceConnection(new Iec61850Connection(new Iec61850ClientAssociation(clientAssociation, null), serverModel), deviceRequest.getDeviceIdentification(), deviceRequest.getOrganisationIdentification(), serverName), deviceRequest, messageProcessor);
final DaDeviceResponse deviceResponse = new DaDeviceResponse(deviceRequest, DeviceMessageStatus.OK, dataResponse);
deviceResponseHandler.handleResponse(deviceResponse);
} catch (final ConnectionFailureException se) {
LOGGER.error("Could not connect to device after all retries", se);
final EmptyDeviceResponse deviceResponse = new EmptyDeviceResponse(deviceRequest, DeviceMessageStatus.FAILURE);
deviceResponseHandler.handleConnectionFailure(se, deviceResponse);
} catch (final Exception e) {
LOGGER.error("Unexpected exception during Get Data", e);
final EmptyDeviceResponse deviceResponse = new EmptyDeviceResponse(deviceRequest, DeviceMessageStatus.FAILURE);
deviceResponseHandler.handleException(e, deviceResponse);
}
}
use of org.opensmartgridplatform.adapter.protocol.iec61850.infra.networking.Iec61850Connection in project open-smart-grid-platform by OSGP.
the class Iec61850DeviceConnectionService method readNodeDataValues.
public void readNodeDataValues(final String deviceIdentification, final FcModelNode fcModelNode) throws NodeReadException {
final Iec61850Connection iec61850Connection = this.fetchIec61850Connection(deviceIdentification);
if (iec61850Connection == null) {
return;
}
final ClientAssociation clientAssociation = iec61850Connection.getClientAssociation();
this.iec61850Client.readNodeDataValues(clientAssociation, fcModelNode);
}
Aggregations