QUEUE logging cleanup

This commit is contained in:
Milos Kozak 2018-07-27 12:17:29 +02:00
parent 3d57d52271
commit bfccda21cb
19 changed files with 172 additions and 67 deletions

View file

@ -33,9 +33,9 @@ public class Config {
public static final boolean logNSUpload = true; public static final boolean logNSUpload = true;
public static final boolean logPumpActions = true; public static final boolean logPumpActions = true;
public static final boolean logCongigBuilderActions = true; public static final boolean logCongigBuilderActions = true;
public static final boolean logQueue = true;
public static final boolean logAutosensData = false; public static final boolean logAutosensData = false;
public static final boolean logEvents = false; public static final boolean logEvents = false;
public static final boolean logProfile = false;
// DanaR specific // DanaR specific
public static final boolean logDanaBTComm = true; public static final boolean logDanaBTComm = true;

View file

@ -71,4 +71,5 @@ public class Constants {
// logging // logging
public static final String AUTOSENS = "AUTOSENS"; public static final String AUTOSENS = "AUTOSENS";
public static final String EVENTS = "EVENTS"; public static final String EVENTS = "EVENTS";
public static final String QUEUE = "QUEUE";
} }

View file

@ -52,6 +52,14 @@ public class Profile {
protected Profile() { protected Profile() {
} }
@Override
public String toString() {
if (json != null)
return json.toString();
else
return "Profile has no JSON";
}
// Constructor from profileStore JSON // Constructor from profileStore JSON
public Profile(JSONObject json, String units) { public Profile(JSONObject json, String units) {
init(json, 100, 0); init(json, 100, 0);
@ -295,8 +303,6 @@ public class Profile {
Integer getShitfTimeSecs(Integer originalTime) { Integer getShitfTimeSecs(Integer originalTime) {
Integer shiftedTime = originalTime + timeshift * 60 * 60; Integer shiftedTime = originalTime + timeshift * 60 * 60;
shiftedTime = (shiftedTime + 24 * 60 * 60) % (24 * 60 * 60); shiftedTime = (shiftedTime + 24 * 60 * 60) % (24 * 60 * 60);
if (timeshift != 0 && Config.logProfile)
log.debug("(Sec) Original time: " + originalTime + " ShiftedTime: " + shiftedTime);
return shiftedTime; return shiftedTime;
} }

View file

@ -12,6 +12,8 @@ import org.slf4j.LoggerFactory;
import java.util.LinkedList; import java.util.LinkedList;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.DetailedBolusInfo;
@ -75,7 +77,7 @@ import info.nightscout.androidaps.queue.commands.CommandTempBasalPercent;
*/ */
public class CommandQueue { public class CommandQueue {
private static Logger log = LoggerFactory.getLogger(CommandQueue.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
private final LinkedList<Command> queue = new LinkedList<>(); private final LinkedList<Command> queue = new LinkedList<>();
protected Command performing; protected Command performing;
@ -109,12 +111,14 @@ public class CommandQueue {
private synchronized void inject(Command command) { private synchronized void inject(Command command) {
// inject as a first command // inject as a first command
log.debug("QUEUE: Adding as first: " + command.getClass().getSimpleName() + " - " + command.status()); if (Config.logQueue)
log.debug("Adding as first: " + command.getClass().getSimpleName() + " - " + command.status());
queue.addFirst(command); queue.addFirst(command);
} }
private synchronized void add(Command command) { private synchronized void add(Command command) {
log.debug("QUEUE: Adding: " + command.getClass().getSimpleName() + " - " + command.status()); if (Config.logQueue)
log.debug("Adding: " + command.getClass().getSimpleName() + " - " + command.status());
queue.add(command); queue.add(command);
} }
@ -147,15 +151,18 @@ public class CommandQueue {
// start thread again if not already running // start thread again if not already running
protected synchronized void notifyAboutNewCommand() { protected synchronized void notifyAboutNewCommand() {
while (thread != null && thread.getState() != Thread.State.TERMINATED && thread.waitingForDisconnect) { while (thread != null && thread.getState() != Thread.State.TERMINATED && thread.waitingForDisconnect) {
log.debug("QUEUE: Waiting for previous thread finish"); if (Config.logQueue)
log.debug("Waiting for previous thread finish");
SystemClock.sleep(500); SystemClock.sleep(500);
} }
if (thread == null || thread.getState() == Thread.State.TERMINATED) { if (thread == null || thread.getState() == Thread.State.TERMINATED) {
thread = new QueueThread(this); thread = new QueueThread(this);
thread.start(); thread.start();
log.debug("QUEUE: Starting new thread"); if (Config.logQueue)
log.debug("Starting new thread");
} else { } else {
log.debug("QUEUE: Thread is already running"); if (Config.logQueue)
log.debug("Thread is already running");
} }
} }
@ -164,8 +171,8 @@ public class CommandQueue {
tempCommandQueue.readStatus(reason, callback); tempCommandQueue.readStatus(reason, callback);
} }
public synchronized boolean bolusInQueue(){ public synchronized boolean bolusInQueue() {
if(isRunning(Command.CommandType.BOLUS)) return true; if (isRunning(Command.CommandType.BOLUS)) return true;
for (int i = 0; i < queue.size(); i++) { for (int i = 0; i < queue.size(); i++) {
if (queue.get(i).commandType == Command.CommandType.BOLUS) { if (queue.get(i).commandType == Command.CommandType.BOLUS) {
return true; return true;
@ -180,17 +187,19 @@ public class CommandQueue {
if (type == Command.CommandType.SMB_BOLUS) { if (type == Command.CommandType.SMB_BOLUS) {
if (isRunning(Command.CommandType.BOLUS) || bolusInQueue()) { if (isRunning(Command.CommandType.BOLUS) || bolusInQueue()) {
log.debug("Rejecting SMB since a bolus is queue/running"); if (Config.logQueue)
log.debug("Rejecting SMB since a bolus is queue/running");
return false; return false;
} }
if (detailedBolusInfo.lastKnownBolusTime < TreatmentsPlugin.getPlugin().getLastBolusTime()) { if (detailedBolusInfo.lastKnownBolusTime < TreatmentsPlugin.getPlugin().getLastBolusTime()) {
log.debug("Rejecting bolus, another bolus was issued since request time"); if (Config.logQueue)
log.debug("Rejecting bolus, another bolus was issued since request time");
return false; return false;
} }
} }
if(type.equals(Command.CommandType.BOLUS) && detailedBolusInfo.carbs > 0 && detailedBolusInfo.insulin == 0){ if (type.equals(Command.CommandType.BOLUS) && detailedBolusInfo.carbs > 0 && detailedBolusInfo.insulin == 0) {
type = Command.CommandType.CARBS_ONLY_TREATMENT; type = Command.CommandType.CARBS_ONLY_TREATMENT;
//Carbs only can be added in parallel as they can be "in the future". //Carbs only can be added in parallel as they can be "in the future".
} else { } else {
@ -213,7 +222,7 @@ public class CommandQueue {
add(new CommandSMBBolus(detailedBolusInfo, callback)); add(new CommandSMBBolus(detailedBolusInfo, callback));
} else { } else {
add(new CommandBolus(detailedBolusInfo, callback, type)); add(new CommandBolus(detailedBolusInfo, callback, type));
if(type.equals(Command.CommandType.BOLUS)) { if (type.equals(Command.CommandType.BOLUS)) {
// Bring up bolus progress dialog (start here, so the dialog is shown when the bolus is requested, // Bring up bolus progress dialog (start here, so the dialog is shown when the bolus is requested,
// not when the Bolus command is starting. The command closes the dialog upon completion). // not when the Bolus command is starting. The command closes the dialog upon completion).
showBolusProgressDialog(detailedBolusInfo.insulin, detailedBolusInfo.context); showBolusProgressDialog(detailedBolusInfo.insulin, detailedBolusInfo.context);
@ -337,7 +346,8 @@ public class CommandQueue {
// returns true if command is queued // returns true if command is queued
public boolean setProfile(Profile profile, Callback callback) { public boolean setProfile(Profile profile, Callback callback) {
if (isThisProfileSet(profile)) { if (isThisProfileSet(profile)) {
log.debug("QUEUE: Correct profile already set"); if (Config.logQueue)
log.debug("Correct profile already set");
if (callback != null) if (callback != null)
callback.result(new PumpEnactResult().success(true).enacted(false)).run(); callback.result(new PumpEnactResult().success(true).enacted(false)).run();
return false; return false;
@ -381,7 +391,8 @@ public class CommandQueue {
// returns true if command is queued // returns true if command is queued
public boolean readStatus(String reason, Callback callback) { public boolean readStatus(String reason, Callback callback) {
if (isLastScheduled(Command.CommandType.READSTATUS)) { if (isLastScheduled(Command.CommandType.READSTATUS)) {
log.debug("QUEUE: READSTATUS " + reason + " ignored as duplicated"); if (Config.logQueue)
log.debug("READSTATUS " + reason + " ignored as duplicated");
if (callback != null) if (callback != null)
callback.result(executingNowError()).run(); callback.result(executingNowError()).run();
return false; return false;
@ -496,8 +507,10 @@ public class CommandQueue {
if (activePump != null && current != null) { if (activePump != null && current != null) {
boolean result = activePump.isThisProfileSet(profile); boolean result = activePump.isThisProfileSet(profile);
if (!result) { if (!result) {
log.debug("Current profile: " + current.getData().toString()); if (Config.logQueue) {
log.debug("New profile: " + profile.getData().toString()); log.debug("Current profile: " + current.toString());
log.debug("New profile: " + profile.toString());
}
} }
return result; return result;
} else return true; } else return true;

View file

@ -8,6 +8,7 @@ import android.os.SystemClock;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
@ -26,7 +27,7 @@ import info.nightscout.utils.SP;
*/ */
public class QueueThread extends Thread { public class QueueThread extends Thread {
private static Logger log = LoggerFactory.getLogger(QueueThread.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
private CommandQueue queue; private CommandQueue queue;
@ -54,7 +55,8 @@ public class QueueThread extends Thread {
while (true) { while (true) {
PumpInterface pump = ConfigBuilderPlugin.getActivePump(); PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (pump == null) { if (pump == null) {
log.debug("QUEUE: pump == null"); if (Config.logQueue)
log.debug("pump == null");
MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.pumpNotInitialized))); MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.pumpNotInitialized)));
SystemClock.sleep(1000); SystemClock.sleep(1000);
continue; continue;
@ -64,15 +66,17 @@ public class QueueThread extends Thread {
if (!pump.isConnected() && secondsElapsed > Constants.PUMP_MAX_CONNECTION_TIME_IN_SECONDS) { if (!pump.isConnected() && secondsElapsed > Constants.PUMP_MAX_CONNECTION_TIME_IN_SECONDS) {
MainApp.bus().post(new EventDismissBolusprogressIfRunning(null)); MainApp.bus().post(new EventDismissBolusprogressIfRunning(null));
MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.connectiontimedout))); MainApp.bus().post(new EventPumpStatusChanged(MainApp.gs(R.string.connectiontimedout)));
log.debug("QUEUE: timed out"); if (Config.logQueue)
log.debug("timed out");
pump.stopConnecting(); pump.stopConnecting();
//BLUETOOTH-WATCHDOG //BLUETOOTH-WATCHDOG
boolean watchdog = SP.getBoolean(R.string.key_btwatchdog, false); boolean watchdog = SP.getBoolean(R.string.key_btwatchdog, false);
long last_watchdog = SP.getLong(R.string.key_btwatchdog_lastbark, 0l); long last_watchdog = SP.getLong(R.string.key_btwatchdog_lastbark, 0l);
watchdog = watchdog && System.currentTimeMillis() - last_watchdog > (Constants.MIN_WATCHDOG_INTERVAL_IN_SECONDS * 1000); watchdog = watchdog && System.currentTimeMillis() - last_watchdog > (Constants.MIN_WATCHDOG_INTERVAL_IN_SECONDS * 1000);
if(watchdog) { if (watchdog) {
log.debug("BT watchdog - toggeling the phonest bluetooth"); if (Config.logQueue)
log.debug("BT watchdog - toggeling the phonest bluetooth");
//write time //write time
SP.putLong(R.string.key_btwatchdog_lastbark, System.currentTimeMillis()); SP.putLong(R.string.key_btwatchdog_lastbark, System.currentTimeMillis());
//toggle BT //toggle BT
@ -91,7 +95,8 @@ public class QueueThread extends Thread {
pump.connect("watchdog"); pump.connect("watchdog");
} else { } else {
queue.clear(); queue.clear();
log.debug("QUEUE: no connection possible"); if (Config.logQueue)
log.debug("no connection possible");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
pump.disconnect("Queue empty"); pump.disconnect("Queue empty");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED));
@ -100,7 +105,8 @@ public class QueueThread extends Thread {
} }
if (pump.isConnecting()) { if (pump.isConnecting()) {
log.debug("QUEUE: connecting " + secondsElapsed); if (Config.logQueue)
log.debug("connecting " + secondsElapsed);
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed));
SystemClock.sleep(1000); SystemClock.sleep(1000);
continue; continue;
@ -108,7 +114,8 @@ public class QueueThread extends Thread {
if (!pump.isConnected()) { if (!pump.isConnected()) {
log.debug("QUEUE: connect"); if (Config.logQueue)
log.debug("connect");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed));
pump.connect("Connection needed"); pump.connect("Connection needed");
SystemClock.sleep(1000); SystemClock.sleep(1000);
@ -118,12 +125,14 @@ public class QueueThread extends Thread {
if (queue.performing() == null) { if (queue.performing() == null) {
if (!connectLogged) { if (!connectLogged) {
connectLogged = true; connectLogged = true;
log.debug("QUEUE: connection time " + secondsElapsed + "s"); if (Config.logQueue)
log.debug("connection time " + secondsElapsed + "s");
} }
// Pickup 1st command and set performing variable // Pickup 1st command and set performing variable
if (queue.size() > 0) { if (queue.size() > 0) {
queue.pickup(); queue.pickup();
log.debug("QUEUE: performing " + queue.performing().status()); if (Config.logQueue)
log.debug("performing " + queue.performing().status());
MainApp.bus().post(new EventQueueChanged()); MainApp.bus().post(new EventQueueChanged());
queue.performing().execute(); queue.performing().execute();
queue.resetPerforming(); queue.resetPerforming();
@ -138,14 +147,17 @@ public class QueueThread extends Thread {
long secondsFromLastCommand = (System.currentTimeMillis() - lastCommandTime) / 1000; long secondsFromLastCommand = (System.currentTimeMillis() - lastCommandTime) / 1000;
if (secondsFromLastCommand >= 5) { if (secondsFromLastCommand >= 5) {
waitingForDisconnect = true; waitingForDisconnect = true;
log.debug("QUEUE: queue empty. disconnect"); if (Config.logQueue)
log.debug("queue empty. disconnect");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTING));
pump.disconnect("Queue empty"); pump.disconnect("Queue empty");
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED)); MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.DISCONNECTED));
log.debug("QUEUE: disconnected"); if (Config.logQueue)
log.debug("disconnected");
return; return;
} else { } else {
log.debug("QUEUE: waiting for disconnect"); if (Config.logQueue)
log.debug("waiting for disconnect");
SystemClock.sleep(1000); SystemClock.sleep(1000);
} }
} }
@ -154,6 +166,4 @@ public class QueueThread extends Thread {
mWakeLock.release(); mWakeLock.release();
} }
} }
} }

View file

@ -1,5 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
@ -9,6 +14,8 @@ import info.nightscout.androidaps.queue.Callback;
* Created by mike on 09.11.2017. * Created by mike on 09.11.2017.
*/ */
public abstract class Command { public abstract class Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
public enum CommandType { public enum CommandType {
BOLUS, BOLUS,
SMB_BOLUS, SMB_BOLUS,
@ -33,6 +40,8 @@ public abstract class Command {
PumpEnactResult result = new PumpEnactResult(); PumpEnactResult result = new PumpEnactResult();
result.success = false; result.success = false;
result.comment = MainApp.gs(R.string.connectiontimedout); result.comment = MainApp.gs(R.string.connectiontimedout);
if (Config.logQueue)
log.debug("Result cancel");
if (callback != null) if (callback != null)
callback.result(result).run(); callback.result(result).run();
} }

View file

@ -1,5 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
@ -14,6 +19,8 @@ import info.nightscout.utils.DecimalFormatter;
*/ */
public class CommandBolus extends Command { public class CommandBolus extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
DetailedBolusInfo detailedBolusInfo; DetailedBolusInfo detailedBolusInfo;
public CommandBolus(DetailedBolusInfo detailedBolusInfo, Callback callback, CommandType type) { public CommandBolus(DetailedBolusInfo detailedBolusInfo, Callback callback, CommandType type) {
@ -28,6 +35,8 @@ public class CommandBolus extends Command {
BolusProgressDialog.bolusEnded = true; BolusProgressDialog.bolusEnded = true;
MainApp.bus().post(new EventDismissBolusprogressIfRunning(r)); MainApp.bus().post(new EventDismissBolusprogressIfRunning(r));
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();

View file

@ -4,7 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
@ -14,7 +14,7 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandCancelExtendedBolus extends Command { public class CommandCancelExtendedBolus extends Command {
private static Logger log = LoggerFactory.getLogger(CommandCancelExtendedBolus.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
public CommandCancelExtendedBolus(Callback callback) { public CommandCancelExtendedBolus(Callback callback) {
commandType = CommandType.EXTENDEDBOLUS; commandType = CommandType.EXTENDEDBOLUS;
@ -24,8 +24,8 @@ public class CommandCancelExtendedBolus extends Command {
@Override @Override
public void execute() { public void execute() {
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().cancelExtendedBolus(); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().cancelExtendedBolus();
if (Config.logCongigBuilderActions) if (Config.logQueue)
log.debug("cancelExtendedBolus success: " + r.success + " enacted: " + r.enacted); log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -1,6 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import info.nightscout.androidaps.MainApp; import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
@ -10,6 +14,8 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandCancelTempBasal extends Command { public class CommandCancelTempBasal extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
boolean enforceNew; boolean enforceNew;
public CommandCancelTempBasal(boolean enforceNew, Callback callback) { public CommandCancelTempBasal(boolean enforceNew, Callback callback) {
@ -21,6 +27,8 @@ public class CommandCancelTempBasal extends Command {
@Override @Override
public void execute() { public void execute() {
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().cancelTempBasal(enforceNew); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().cancelTempBasal(enforceNew);
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -4,7 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
@ -14,7 +14,7 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandExtendedBolus extends Command { public class CommandExtendedBolus extends Command {
private static Logger log = LoggerFactory.getLogger(CommandExtendedBolus.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
private double insulin; private double insulin;
private int durationInMinutes; private int durationInMinutes;
@ -29,8 +29,8 @@ public class CommandExtendedBolus extends Command {
@Override @Override
public void execute() { public void execute() {
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setExtendedBolus(insulin, durationInMinutes); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setExtendedBolus(insulin, durationInMinutes);
if (Config.logCongigBuilderActions) if (Config.logQueue)
log.debug("setExtendedBolus rate: " + insulin + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted); log.debug("Result rate: " + insulin + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -1,5 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.DanaRInterface; import info.nightscout.androidaps.interfaces.DanaRInterface;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
@ -11,6 +16,8 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandLoadEvents extends Command { public class CommandLoadEvents extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
public CommandLoadEvents(Callback callback) { public CommandLoadEvents(Callback callback) {
commandType = CommandType.LOADEVENTS; commandType = CommandType.LOADEVENTS;
this.callback = callback; this.callback = callback;
@ -22,6 +29,8 @@ public class CommandLoadEvents extends Command {
if (pump instanceof DanaRInterface) { if (pump instanceof DanaRInterface) {
DanaRInterface danaPump = (DanaRInterface) pump; DanaRInterface danaPump = (DanaRInterface) pump;
PumpEnactResult r = danaPump.loadEvents(); PumpEnactResult r = danaPump.loadEvents();
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -1,17 +1,23 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.DanaRInterface; import info.nightscout.androidaps.interfaces.DanaRInterface;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
import info.nightscout.androidaps.queue.commands.Command;
/** /**
* Created by mike on 10.11.2017. * Created by mike on 10.11.2017.
*/ */
public class CommandLoadHistory extends Command { public class CommandLoadHistory extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
byte type; byte type;
public CommandLoadHistory(byte type, Callback callback) { public CommandLoadHistory(byte type, Callback callback) {
@ -26,6 +32,8 @@ public class CommandLoadHistory extends Command {
if (pump instanceof DanaRInterface) { if (pump instanceof DanaRInterface) {
DanaRInterface danaPump = (DanaRInterface) pump; DanaRInterface danaPump = (DanaRInterface) pump;
PumpEnactResult r = danaPump.loadHistory(type); PumpEnactResult r = danaPump.loadHistory(type);
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -1,5 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
@ -10,6 +15,8 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandLoadTDDs extends Command { public class CommandLoadTDDs extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
public CommandLoadTDDs(Callback callback) { public CommandLoadTDDs(Callback callback) {
commandType = CommandType.LOADHISTORY; //belongs to the history group of commands commandType = CommandType.LOADHISTORY; //belongs to the history group of commands
@ -20,9 +27,11 @@ public class CommandLoadTDDs extends Command {
public void execute() { public void execute() {
PumpInterface pump = ConfigBuilderPlugin.getActivePump(); PumpInterface pump = ConfigBuilderPlugin.getActivePump();
PumpEnactResult r = pump.loadTDDs(); PumpEnactResult r = pump.loadTDDs();
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }
@Override @Override
public String status() { public String status() {

View file

@ -1,5 +1,10 @@
package info.nightscout.androidaps.queue.commands; package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
import info.nightscout.utils.LocalAlertUtils; import info.nightscout.utils.LocalAlertUtils;
@ -9,6 +14,8 @@ import info.nightscout.utils.LocalAlertUtils;
*/ */
public class CommandReadStatus extends Command { public class CommandReadStatus extends Command {
private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
String reason; String reason;
public CommandReadStatus(String reason, Callback callback) { public CommandReadStatus(String reason, Callback callback) {
@ -21,6 +28,8 @@ public class CommandReadStatus extends Command {
public void execute() { public void execute() {
ConfigBuilderPlugin.getActivePump().getPumpStatus(); ConfigBuilderPlugin.getActivePump().getPumpStatus();
LocalAlertUtils.notifyPumpStatusRead(); LocalAlertUtils.notifyPumpStatusRead();
if (Config.logQueue)
log.debug("CommandReadStatus executed. Reason: " + reason);
if (callback != null) if (callback != null)
callback.result(null).run(); callback.result(null).run();
} }

View file

@ -3,6 +3,8 @@ package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.DetailedBolusInfo; import info.nightscout.androidaps.data.DetailedBolusInfo;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
@ -20,7 +22,8 @@ import info.nightscout.utils.T;
*/ */
public class CommandSMBBolus extends Command { public class CommandSMBBolus extends Command {
private static Logger log = LoggerFactory.getLogger(CommandSMBBolus.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
DetailedBolusInfo detailedBolusInfo; DetailedBolusInfo detailedBolusInfo;
public CommandSMBBolus(DetailedBolusInfo detailedBolusInfo, Callback callback) { public CommandSMBBolus(DetailedBolusInfo detailedBolusInfo, Callback callback) {
@ -34,20 +37,25 @@ public class CommandSMBBolus extends Command {
PumpEnactResult r; PumpEnactResult r;
long lastBolusTime = TreatmentsPlugin.getPlugin().getLastBolusTime(); long lastBolusTime = TreatmentsPlugin.getPlugin().getLastBolusTime();
if (lastBolusTime != 0 && lastBolusTime + T.mins(3).msecs() > DateUtil.now()) { if (lastBolusTime != 0 && lastBolusTime + T.mins(3).msecs() > DateUtil.now()) {
log.debug("SMB requsted but still in 3 min interval"); if (Config.logQueue)
log.debug("SMB requsted but still in 3 min interval");
r = new PumpEnactResult().enacted(false).success(false).comment("SMB requsted but still in 3 min interval"); r = new PumpEnactResult().enacted(false).success(false).comment("SMB requsted but still in 3 min interval");
} else if (detailedBolusInfo.deliverAt != 0 && detailedBolusInfo.deliverAt + T.mins(1).msecs() > System.currentTimeMillis()) } else if (detailedBolusInfo.deliverAt != 0 && detailedBolusInfo.deliverAt + T.mins(1).msecs() > System.currentTimeMillis()) {
r = ConfigBuilderPlugin.getActivePump().deliverTreatment(detailedBolusInfo); r = ConfigBuilderPlugin.getActivePump().deliverTreatment(detailedBolusInfo);
else { } else {
r = new PumpEnactResult().enacted(false).success(false).comment("SMB request too old"); r = new PumpEnactResult().enacted(false).success(false).comment("SMB request too old");
log.debug("SMB bolus canceled. delivetAt=" + detailedBolusInfo.deliverAt + " now=" + System.currentTimeMillis()); if (Config.logQueue)
log.debug("SMB bolus canceled. delivetAt: " + DateUtil.dateAndTimeString(detailedBolusInfo.deliverAt));
} }
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }
public String status() { public String status() {
return "SMBBOLUS " + DecimalFormatter.to1Decimal(detailedBolusInfo.insulin) + "U"; return "SMBBOLUS " + DecimalFormatter.to2Decimal(detailedBolusInfo.insulin) + "U";
} }
} }

View file

@ -3,6 +3,8 @@ package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.R; import info.nightscout.androidaps.R;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
@ -20,7 +22,8 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandSetProfile extends Command { public class CommandSetProfile extends Command {
private static Logger log = LoggerFactory.getLogger(CommandSetProfile.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
private Profile profile; private Profile profile;
public CommandSetProfile(Profile profile, Callback callback) { public CommandSetProfile(Profile profile, Callback callback) {
@ -32,13 +35,16 @@ public class CommandSetProfile extends Command {
@Override @Override
public void execute() { public void execute() {
if (ConfigBuilderPlugin.getCommandQueue().isThisProfileSet(profile)) { if (ConfigBuilderPlugin.getCommandQueue().isThisProfileSet(profile)) {
log.debug("QUEUE: Correct profile already set"); if (Config.logQueue)
log.debug("Correct profile already set. profile: " + profile.toString());
if (callback != null) if (callback != null)
callback.result(new PumpEnactResult().success(true).enacted(false)).run(); callback.result(new PumpEnactResult().success(true).enacted(false)).run();
return; return;
} }
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setNewBasalProfile(profile); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setNewBasalProfile(profile);
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted + " profile: " + profile.toString());
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();

View file

@ -3,13 +3,12 @@ package info.nightscout.androidaps.queue.commands;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.interfaces.DanaRInterface; import info.nightscout.androidaps.interfaces.DanaRInterface;
import info.nightscout.androidaps.interfaces.PluginType;
import info.nightscout.androidaps.interfaces.PumpInterface; import info.nightscout.androidaps.interfaces.PumpInterface;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
import info.nightscout.androidaps.plugins.PumpDanaRv2.DanaRv2Plugin;
import info.nightscout.androidaps.queue.Callback; import info.nightscout.androidaps.queue.Callback;
/** /**
@ -17,7 +16,8 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandSetUserSettings extends Command { public class CommandSetUserSettings extends Command {
private static Logger log = LoggerFactory.getLogger(CommandSetUserSettings.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
public CommandSetUserSettings(Callback callback) { public CommandSetUserSettings(Callback callback) {
commandType = CommandType.SETUSERSETTINGS; commandType = CommandType.SETUSERSETTINGS;
this.callback = callback; this.callback = callback;
@ -28,11 +28,9 @@ public class CommandSetUserSettings extends Command {
PumpInterface pump = ConfigBuilderPlugin.getActivePump(); PumpInterface pump = ConfigBuilderPlugin.getActivePump();
if (pump instanceof DanaRInterface) { if (pump instanceof DanaRInterface) {
DanaRInterface danaPump = (DanaRInterface) pump; DanaRInterface danaPump = (DanaRInterface) pump;
boolean isDanaRv2 = MainApp.getSpecificPlugin(DanaRv2Plugin.class) != null && MainApp.getSpecificPlugin(DanaRv2Plugin.class).isEnabled(PluginType.PUMP);
if(isDanaRv2){
log.debug("MsgSetUserOptions detected for DanaRv2");
}
PumpEnactResult r = danaPump.setUserOptions(); PumpEnactResult r = danaPump.setUserOptions();
if (Config.logQueue)
log.debug("Result success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.MainApp; import info.nightscout.androidaps.MainApp;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
@ -15,7 +16,7 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandTempBasalAbsolute extends Command { public class CommandTempBasalAbsolute extends Command {
private static Logger log = LoggerFactory.getLogger(CommandTempBasalAbsolute.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
int durationInMinutes; int durationInMinutes;
double absoluteRate; double absoluteRate;
@ -34,8 +35,8 @@ public class CommandTempBasalAbsolute extends Command {
@Override @Override
public void execute() { public void execute() {
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setTempBasalAbsolute(absoluteRate, durationInMinutes, profile, enforceNew); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setTempBasalAbsolute(absoluteRate, durationInMinutes, profile, enforceNew);
if (Config.logCongigBuilderActions) if (Config.logQueue)
log.debug("setTempBasalAbsolute rate: " + absoluteRate + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted); log.debug("Result rate: " + absoluteRate + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }

View file

@ -4,6 +4,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import info.nightscout.androidaps.Config; import info.nightscout.androidaps.Config;
import info.nightscout.androidaps.Constants;
import info.nightscout.androidaps.data.Profile; import info.nightscout.androidaps.data.Profile;
import info.nightscout.androidaps.data.PumpEnactResult; import info.nightscout.androidaps.data.PumpEnactResult;
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin; import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
@ -14,7 +15,7 @@ import info.nightscout.androidaps.queue.Callback;
*/ */
public class CommandTempBasalPercent extends Command { public class CommandTempBasalPercent extends Command {
private static Logger log = LoggerFactory.getLogger(CommandTempBasalPercent.class); private Logger log = LoggerFactory.getLogger(Constants.QUEUE);
int durationInMinutes; int durationInMinutes;
int percent; int percent;
@ -33,8 +34,8 @@ public class CommandTempBasalPercent extends Command {
@Override @Override
public void execute() { public void execute() {
PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setTempBasalPercent(percent, durationInMinutes, profile, enforceNew); PumpEnactResult r = ConfigBuilderPlugin.getActivePump().setTempBasalPercent(percent, durationInMinutes, profile, enforceNew);
if (Config.logCongigBuilderActions) if (Config.logQueue)
log.debug("setTempBasalPercent percent: " + percent + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted); log.debug("Result percent: " + percent + " durationInMinutes: " + durationInMinutes + " success: " + r.success + " enacted: " + r.enacted);
if (callback != null) if (callback != null)
callback.result(r).run(); callback.result(r).run();
} }