70 lines
2 KiB
Java
70 lines
2 KiB
Java
|
package info.nightscout.androidaps.queue;
|
||
|
|
||
|
import android.os.SystemClock;
|
||
|
|
||
|
import org.slf4j.Logger;
|
||
|
import org.slf4j.LoggerFactory;
|
||
|
|
||
|
import info.nightscout.androidaps.MainApp;
|
||
|
import info.nightscout.androidaps.events.EventPumpStatusChanged;
|
||
|
import info.nightscout.androidaps.interfaces.PumpInterface;
|
||
|
import info.nightscout.androidaps.plugins.ConfigBuilder.ConfigBuilderPlugin;
|
||
|
|
||
|
/**
|
||
|
* Created by mike on 09.11.2017.
|
||
|
*/
|
||
|
|
||
|
public class QueueThread extends Thread {
|
||
|
private static Logger log = LoggerFactory.getLogger(QueueThread.class);
|
||
|
|
||
|
CommandQueue queue;
|
||
|
boolean keepRunning = false;
|
||
|
|
||
|
|
||
|
private long connectionStartTime = 0;
|
||
|
|
||
|
public QueueThread(CommandQueue queue) {
|
||
|
super(QueueThread.class.toString());
|
||
|
|
||
|
this.queue = queue;
|
||
|
keepRunning = true;
|
||
|
}
|
||
|
|
||
|
@Override
|
||
|
public final void run() {
|
||
|
PumpInterface pump = ConfigBuilderPlugin.getActivePump();
|
||
|
|
||
|
while (keepRunning) {
|
||
|
if (pump.isConnecting()) {
|
||
|
long secondsElapsed = (System.currentTimeMillis() - connectionStartTime) / 1000;
|
||
|
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING, (int) secondsElapsed));
|
||
|
SystemClock.sleep(1000);
|
||
|
}
|
||
|
|
||
|
if (!pump.isConnected()) {
|
||
|
MainApp.bus().post(new EventPumpStatusChanged(EventPumpStatusChanged.CONNECTING));
|
||
|
pump.connect("Not connected");
|
||
|
connectionStartTime = System.currentTimeMillis();
|
||
|
SystemClock.sleep(1000);
|
||
|
}
|
||
|
|
||
|
if (queue.performing() == null) {
|
||
|
// Pickup 1st command and set performing variable
|
||
|
if (queue.size() > 0) {
|
||
|
queue.pickup();
|
||
|
queue.performing().execute();
|
||
|
queue.resetPerforming();
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
if (queue.size() == 0 && queue.performing() == null) {
|
||
|
pump.disconnect("Queue empty");
|
||
|
keepRunning = false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
}
|