From 07057553687a9ab1683dbd412b337ffeb3a080e6 Mon Sep 17 00:00:00 2001 From: Johannes Mockenhaupt Date: Sun, 27 Aug 2017 14:27:48 +0200 Subject: [PATCH] Revert "Retry with current ruffy." This reverts commit f9281c1f996679a2c8065aa52cbb8cb4698353bc. --- .../d/ruffy/ruffy/driver/IRTHandler.aidl | 9 +--- .../d/ruffy/ruffy/driver/IRuffyService.aidl | 10 ++--- .../d/ruffy/ruffy/driver/package-info.java | 1 + .../jotomo/ruffyscripter/RuffyScripter.java | 42 ++++--------------- 4 files changed, 15 insertions(+), 47 deletions(-) create mode 100644 app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/package-info.java diff --git a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRTHandler.aidl b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRTHandler.aidl index b6a07226b8..996b10b666 100644 --- a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRTHandler.aidl +++ b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRTHandler.aidl @@ -10,17 +10,12 @@ interface IRTHandler { void fail(String message); void requestBluetooth(); - boolean canDisconnect(); void rtStopped(); void rtStarted(); void rtClearDisplay(); void rtUpdateDisplay(in byte[] quarter, int which); - void rtDisplayHandleMenu(in Menu menu, in int sequence); - void rtDisplayHandleNoMenu(in int sequence); - - void keySent(in int sequence); - - String getServiceIdentifier(); + void rtDisplayHandleMenu(in Menu menu); + void rtDisplayHandleNoMenu(); } diff --git a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl index f4879445b7..6c988aa038 100644 --- a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl +++ b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/IRuffyService.aidl @@ -6,22 +6,18 @@ import org.monkey.d.ruffy.ruffy.driver.IRTHandler; interface IRuffyService { - void addHandler(IRTHandler handler); - void removeHandler(IRTHandler handler); + void setHandler(IRTHandler handler); /** Connect to the pump * * @return 0 if successful, -1 otherwise */ - int doRTConnect(IRTHandler handler); + int doRTConnect(); /** Disconnect from the pump */ - void doRTDisconnect(IRTHandler handler); + void doRTDisconnect(); - /*What's the meaning of 'changed'? - * changed means if a button state has been changed, like btton pressed is a change and button release another*/ void rtSendKey(byte keyCode, boolean changed); void resetPairing(); boolean isConnected(); - boolean isBoundToPump(); } diff --git a/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/package-info.java b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/package-info.java new file mode 100644 index 0000000000..ab1def7407 --- /dev/null +++ b/app/src/main/aidl/org/monkey/d/ruffy/ruffy/driver/package-info.java @@ -0,0 +1 @@ +//b916a900c0899ef58ad58c7427d1c30d3c8731f4 \ No newline at end of file diff --git a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java index 4546aa90c6..7630907160 100644 --- a/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java +++ b/app/src/main/java/de/jotomo/ruffyscripter/RuffyScripter.java @@ -46,11 +46,9 @@ public class RuffyScripter { private final Object screenlock = new Object(); - private final Object keylock = new Object(); - private int keynotwait = 0; - public void start(IRuffyService newService) { try { +/* if (ruffyService != null) { try { ruffyService.removeHandler(mHandler); @@ -58,6 +56,7 @@ public class RuffyScripter { // ignore } } +*/ if (newService != null) { this.ruffyService = newService; // TODO this'll be done better in v2 via ConnectionManager @@ -65,7 +64,7 @@ public class RuffyScripter { idleDisconnectMonitorThread.start(); } started = true; - newService.addHandler(mHandler); + newService.setHandler(mHandler); } } catch (Exception e) { log.error("Unhandled exception starting RuffyScripter", e); @@ -78,7 +77,6 @@ public class RuffyScripter { } private volatile boolean connected = false; - private volatile boolean canDisconnect = false; private volatile long lastDisconnected = 0; private Thread idleDisconnectMonitorThread = new Thread(new Runnable() { @@ -94,8 +92,7 @@ public class RuffyScripter { && now > lastDisconnected + 15 * 1000) { log.debug("Disconnecting after " + (connectionTimeOutMs / 1000) + "s inactivity timeout"); lastDisconnected = now; - canDisconnect = true; - ruffyService.doRTDisconnect(mHandler); + ruffyService.doRTDisconnect(); connected = false; // don't attempt anything fancy in the next 10s, let the pump settle SystemClock.sleep(10 * 1000); @@ -130,11 +127,6 @@ public class RuffyScripter { log.trace("Ruffy invoked requestBluetooth callback"); } - @Override - public boolean canDisconnect() throws RemoteException { - return canDisconnect; - } - @Override public void rtStopped() throws RemoteException { log.debug("rtStopped callback invoked"); @@ -157,7 +149,7 @@ public class RuffyScripter { } @Override - public void rtDisplayHandleMenu(Menu menu, int sequence) throws RemoteException { + public void rtDisplayHandleMenu(Menu menu) throws RemoteException { // method is called every ~500ms log.debug("rtDisplayHandleMenu: " + menu); @@ -180,26 +172,9 @@ public class RuffyScripter { } @Override - public void rtDisplayHandleNoMenu(int sequence) throws RemoteException { + public void rtDisplayHandleNoMenu() throws RemoteException { log.debug("rtDisplayHandleNoMenu callback invoked"); } - - - @Override - public void keySent(int sequence) throws RemoteException { - synchronized (keylock) { - if (keynotwait > 0) - keynotwait--; - else - keylock.notify(); - } - } - - @Override - public String getServiceIdentifier() throws RemoteException { - return this.toString(); - } - }; public boolean isPumpBusy() { @@ -207,12 +182,14 @@ public class RuffyScripter { } public void unbind() { + /* if (ruffyService != null) try { ruffyService.removeHandler(mHandler); } catch (Exception e) { // ignore } + */ this.ruffyService = null; } @@ -375,8 +352,7 @@ public class RuffyScripter { SystemClock.sleep(10 * 1000); } - canDisconnect = false; - boolean connectInitSuccessful = ruffyService.doRTConnect(mHandler) == 0; + boolean connectInitSuccessful = ruffyService.doRTConnect() == 0; log.debug("Connect init successful: " + connectInitSuccessful); log.debug("Waiting for first menu update to be sent"); // Note: there was an 'if(currentMenu == null)' around the next call, since