Hi tom_buzink,
While the DNP3 module is in a private repo, the source code for the underlying protocol implementation is available: https://github.com/infiniteautomation/DNP34J
The only use of the port in our code is setting up classes in DNP34J, like,
@Override
public void initialize() {
EthernetParameters params = new EthernetParameters(configuration.getHost(), configuration.getPort());
DNPConfig config = new DNPConfig(params, configuration.getSourceAddress(), configuration.getSlaveAddress());
super.initialize(config);
}
which is then calling
protected boolean initialize(DNPConfig config) {
config.setRequestTimeout(vo.getTimeout());
config.setRequestRetries(vo.getRetries());
// dnp3Master.setStaticPollMultiplier(vo.getStaticPollPeriods());
user = new DNPUser(config);
try {
user.init();
initialized = true;
returnToNormal(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis());
}
catch (Exception e) {
raiseEvent(DATA_SOURCE_EXCEPTION_EVENT, System.currentTimeMillis(), true, new TranslatableMessage(
"event.exception2", vo.getName(), e.getMessage()));
LOG.debug("Error while initializing data source", e);
this.initialized = false;
try {
user.stop();
} catch(Exception e2) {} //munch
return false;
}
super.initialize(); //com.serotonin.m2m2.rt.dataSource.PollingDataSource
return true;
}
While I do not have much experience with DNP3 devices in particular, it is odd to me that you would say it works and then stops working. What version of Mango are you using? Does disabling and re-enabling the data source cause it to start working again if it is on a non-20000 port?
If you observe it not polling anymore (but had been) when not using the standard port, I would be curious to see the output of going to the /rest/v1/threads?asFile=true&stackDepth=40 endpoint in your browser, which you could email into support@infiniteautomation.com and I would take a look at it