Skip to content

Commit

Permalink
[lutron] Add debug logging in leapbridge (openhab#9554)
Browse files Browse the repository at this point in the history
Signed-off-by: Bob Adair <[email protected]>
  • Loading branch information
bobadair authored and seaside1 committed Dec 28, 2020
1 parent 4ea6774 commit eaf77c0
Showing 1 changed file with 21 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -727,19 +727,30 @@ public int getButton(int integrationID, int component) {
}
}

/**
* Executed by keepAliveJob. Sends a LEAP ping request and schedules a reconnect task.
*/
private void sendKeepAlive() {
logger.trace("Sending keepalive query");
sendCommand(new LeapCommand(Request.ping()));
// Reconnect if no response is received within KEEPALIVE_TIMEOUT_SECONDS.
reconnectTaskSchedule();
}

/**
* Schedules the reconnect task keepAliveReconnectJob to execute in KEEPALIVE_TIMEOUT_SECONDS. This should be
* cancelled by calling reconnectTaskCancel() if a valid response is received from the bridge.
*/
private void reconnectTaskSchedule() {
synchronized (keepAliveReconnectLock) {
keepAliveReconnectJob = scheduler.schedule(this::reconnect, KEEPALIVE_TIMEOUT_SECONDS, TimeUnit.SECONDS);
keepAliveReconnectJob = scheduler.schedule(this::keepaliveTimeoutExpired, KEEPALIVE_TIMEOUT_SECONDS,
TimeUnit.SECONDS);
}
}

/**
* Cancels the reconnect task keepAliveReconnectJob.
*/
private void reconnectTaskCancel(boolean interrupt) {
synchronized (keepAliveReconnectLock) {
ScheduledFuture<?> keepAliveReconnectJob = this.keepAliveReconnectJob;
Expand All @@ -751,6 +762,15 @@ private void reconnectTaskCancel(boolean interrupt) {
}
}

/**
* Executed by keepAliveReconnectJob if it is not cancelled by the LEAP message parser calling
* validMessageReceived() which in turn calls reconnectTaskCancel().
*/
private void keepaliveTimeoutExpired() {
logger.debug("Keepalive response timeout expired. Initiating reconnect.");
reconnect();
}

@Override
public void handleCommand(ChannelUID channelUID, Command command) {
if (channelUID.getId().equals(CHANNEL_COMMAND)) {
Expand Down

0 comments on commit eaf77c0

Please sign in to comment.