public Feature setFeature(int number, int value) throws ProtocolException {
BidibMessage response =
send(requestFactory.createFeatureSet(number, value), null, true, FeatureResponse.TYPE,
FeatureNotAvailableResponse.TYPE);
if (response instanceof FeatureResponse) {
Feature result = ((FeatureResponse) response).getFeature();
return result;
}
else if (response instanceof FeatureNotAvailableResponse) {
FeatureNotAvailableResponse result = (FeatureNotAvailableResponse) response;
throw new ProtocolException(
"The requested feature is not available, featureNumber: " + result.getFeatureNumber());
}
if (ignoreWaitTimeout) {
LOGGER.warn("No response received but ignoreWaitTimeout ist set! Current node: {}", this);
return null;
}
throw createNoResponseAvailable("feature set");
}