From d8c1d93a7ff2b5ec28874d99e6c302ffe11ff564 Mon Sep 17 00:00:00 2001 From: Stephan Richter Date: Sun, 22 Nov 2020 23:12:55 +0100 Subject: [PATCH] improved contact learning code --- pom.xml | 2 +- .../java/de/srsoftware/web4rail/Plan.java | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/pom.xml b/pom.xml index 9063dd1..7d3786a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ 4.0.0 de.srsoftware web4rail - 1.0.12 + 1.0.13 Web4Rail jar Java Model Railway Control diff --git a/src/main/java/de/srsoftware/web4rail/Plan.java b/src/main/java/de/srsoftware/web4rail/Plan.java index baad2c5..9b3f146 100644 --- a/src/main/java/de/srsoftware/web4rail/Plan.java +++ b/src/main/java/de/srsoftware/web4rail/Plan.java @@ -686,17 +686,18 @@ public class Plan extends BaseClass{ public void sensor(int addr, boolean active) { Contact contact = Contact.get(addr); - - if (isSet(contact)) { - contact.activate(active); - } else { - LOG.debug("contact: {}", addr); - if (active && learningContact != null) { - LOG.debug("learned: {} = {}",addr,learningContact); - stream(learningContact.addr(addr).propMenu().toString()); - learningContact = null; + if (active && learningContact != null) { + if (isSet(contact)) { + contact.addr(0); + LOG.debug("unsibscribed {} from {}",contact,addr); } + stream(learningContact.addr(addr).propMenu().toString()); + learningContact = null; + LOG.debug("learned: {} = {}",addr,learningContact); + return; } + + if (isSet(contact)) contact.activate(active); } /**