INNER CODE UNIT · Kotlin
localRequestId
vogler75/automation-gateway · source/lib-plc4x/src/main/kotlin/Plc4xDriver.kt:62
val localRequestId = ++pollingRequestId
val builder: PlcReadRequest.Builder = plc!!.readRequestBuilder()
pollingTopics.forEach {
builder.addTagAddress(it.key.topicName, it.key.topicNode)
}
logger.finest { "Poll request [${localRequestId}] for [${pollingTopics.size}] items..." }
try {
val request = builder.build()
val response = request.execute()
response.orTimeout(pollingTimeout, TimeUnit.MILLISECONDS)
response.whenComplete { readResponse, throwable ->
++pollingResponseId
if (readResponse != null) {
logger.finest { "Poll response [${readResponse.asPlcValue}]" }
pollingTopics.forEach { topic ->
val value = readResponse.getPlcValue(topic.key.topicName)
if (!pollingOldNew || value.toString() != topic.value.toString()) { // TODO: String Compare?
pollingTopics[topic.key] = value