Skip to content

Commit 969eda4

Browse files
committed
IOIO: code cleanup
1 parent 49600d1 commit 969eda4

File tree

11 files changed

+72
-57
lines changed

11 files changed

+72
-57
lines changed

ioio/src/main/java/net/sourceforge/smallbasic/ioio/AnalogInputImpl.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
public class AnalogInputImpl extends IOTask implements AnalogInput {
99
private static final String TAG = "AnalogInput";
10-
private static final IOLock<AnalogInput> lock = new IOLock<>();
10+
private final IOLock<AnalogInput> lock = new IOLock<>();
1111
private AnalogInput input = null;
1212

1313
public AnalogInputImpl() {
@@ -16,7 +16,7 @@ public AnalogInputImpl() {
1616
}
1717

1818
@Override
19-
public int available() throws ConnectionLostException {
19+
public int available() {
2020
return lock.invokeInt(AnalogInput::available);
2121
}
2222

@@ -58,12 +58,12 @@ public float getVoltageSync() {
5858
}
5959

6060
@Override
61-
public void loop() throws InterruptedException, ConnectionLostException {
61+
public void loop() {
6262
lock.process(input);
6363
}
6464

6565
@Override
66-
public float read() throws InterruptedException, ConnectionLostException {
66+
public float read() {
6767
return lock.invoke(AnalogInput::read);
6868
}
6969

ioio/src/main/java/net/sourceforge/smallbasic/ioio/CapSenseImpl.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
public class CapSenseImpl extends IOTask implements CapSense {
99
private static final String TAG = "CapSense";
10-
private static final IOLock<CapSense> lock = new IOLock<>();
10+
private final IOLock<CapSense> lock = new IOLock<>();
1111
private CapSense capSense;
1212

1313
public CapSenseImpl() {
@@ -23,22 +23,22 @@ public void close() {
2323
}
2424

2525
@Override
26-
public void loop() throws ConnectionLostException, InterruptedException {
26+
public void loop() {
2727
lock.process(capSense);
2828
}
2929

3030
@Override
31-
public float read() throws InterruptedException, ConnectionLostException {
31+
public float read() {
3232
return lock.invoke(CapSense::read);
3333
}
3434

3535
@Override
36-
public float readSync() throws InterruptedException, ConnectionLostException {
36+
public float readSync() {
3737
return lock.invoke(CapSense::readSync);
3838
}
3939

4040
@Override
41-
public void setFilterCoef(float t) throws ConnectionLostException {
41+
public void setFilterCoef(float t) {
4242
throw new UnsupportedOperationException();
4343
}
4444

@@ -54,23 +54,31 @@ public void setup(IOIO ioio) {
5454
}
5555

5656
@Override
57-
public void waitOver(float threshold) throws ConnectionLostException, InterruptedException {
58-
57+
public void waitOver(float threshold) {
58+
lock.invoke((i) -> {
59+
capSense.waitOver(threshold);
60+
});
5961
}
6062

6163
@Override
62-
public void waitOverSync(float threshold) throws ConnectionLostException, InterruptedException {
63-
64+
public void waitOverSync(float threshold) {
65+
lock.invoke((i) -> {
66+
capSense.waitOverSync(threshold);
67+
});
6468
}
6569

6670
@Override
67-
public void waitUnder(float threshold) throws ConnectionLostException, InterruptedException {
68-
71+
public void waitUnder(float threshold) {
72+
lock.invoke((i) -> {
73+
capSense.waitUnder(threshold);
74+
});
6975
}
7076

7177
@Override
72-
public void waitUnderSync(float threshold) throws ConnectionLostException, InterruptedException {
73-
78+
public void waitUnderSync(float threshold) {
79+
lock.invoke((i) -> {
80+
capSense.waitUnderSync(threshold);
81+
});
7482
}
7583
}
7684

ioio/src/main/java/net/sourceforge/smallbasic/ioio/DigitalInputImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ public void setup(IOIO ioio) {
4444
}
4545

4646
@Override
47-
public void waitForValue(boolean value) throws InterruptedException, ConnectionLostException {
47+
public void waitForValue(boolean value) {
4848
throw new UnsupportedOperationException();
4949
}
5050
}

ioio/src/main/java/net/sourceforge/smallbasic/ioio/DigitalOutputImpl.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void close() {
2525
}
2626

2727
@Override
28-
public void loop() throws InterruptedException, ConnectionLostException {
28+
public void loop() throws ConnectionLostException {
2929
output.write(value.get());
3030
}
3131

@@ -41,7 +41,7 @@ public void setup(IOIO ioio) {
4141
}
4242

4343
@Override
44-
public void write(boolean value) throws ConnectionLostException {
44+
public void write(boolean value) {
4545
this.value.set(value);
4646
}
4747
}
Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
package net.sourceforge.smallbasic.ioio;
22

33
import ioio.lib.api.exception.ConnectionLostException;
4-
import ioio.lib.api.exception.IncompatibilityException;
54

65
@FunctionalInterface
76
public interface Function<T, I> {
8-
T apply(I i) throws ConnectionLostException, InterruptedException, IncompatibilityException;
7+
T apply(I i) throws ConnectionLostException, InterruptedException;
98
}

ioio/src/main/java/net/sourceforge/smallbasic/ioio/IOIOImpl.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
package net.sourceforge.smallbasic.ioio;
22

3+
import java.io.IOException;
4+
35
import ioio.lib.api.IOIO;
4-
import ioio.lib.api.exception.ConnectionLostException;
56
import ioio.lib.spi.Log;
67

7-
import java.io.IOException;
8-
98
public class IOIOImpl extends IOTask {
109
private static final String TAG = "IOIOImpl";
11-
private static final IOLock<IOIO> lock = new IOLock<>();
10+
private final IOLock<IOIO> lock = new IOLock<>();
1211
private IOIO ioio;
1312

1413
public IOIOImpl() throws IOException {
@@ -38,7 +37,7 @@ public void hardReset() {
3837
}
3938

4039
@Override
41-
public void loop() throws InterruptedException, ConnectionLostException {
40+
public void loop() {
4241
lock.process(ioio);
4342
}
4443

ioio/src/main/java/net/sourceforge/smallbasic/ioio/IOLock.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package net.sourceforge.smallbasic.ioio;
22

3-
import ioio.lib.api.exception.ConnectionLostException;
4-
import ioio.lib.api.exception.IncompatibilityException;
5-
63
import java.util.concurrent.CountDownLatch;
74
import java.util.concurrent.atomic.AtomicReference;
85
import java.util.concurrent.locks.ReadWriteLock;
96
import java.util.concurrent.locks.ReentrantReadWriteLock;
107

8+
import ioio.lib.api.exception.ConnectionLostException;
9+
import ioio.lib.api.exception.IncompatibilityException;
10+
1111
public class IOLock<I> {
1212
private final ReadWriteLock lock = new ReentrantReadWriteLock();
1313
private Consumer<I> consumer;

ioio/src/main/java/net/sourceforge/smallbasic/ioio/IOService.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
package net.sourceforge.smallbasic.ioio;
22

3+
import java.io.IOException;
4+
import java.util.ArrayList;
5+
import java.util.List;
6+
37
import ioio.lib.api.IOIO;
48
import ioio.lib.api.exception.ConnectionLostException;
59
import ioio.lib.spi.Log;
610
import ioio.lib.util.IOIOLooper;
711
import ioio.lib.util.IOIOLooperProvider;
812

9-
import java.io.IOException;
10-
import java.util.ArrayList;
11-
import java.util.List;
12-
1313
public class IOService implements IOIOLooperProvider {
1414
private static final String TAG = "IOService";
1515
private static final int MAX_PINS = 43;
@@ -94,7 +94,7 @@ public void loop() throws ConnectionLostException, InterruptedException {
9494
}
9595

9696
@Override
97-
public void setup(IOIO ioio) throws ConnectionLostException, InterruptedException {
97+
public void setup(IOIO ioio) {
9898
this.ioio = ioio;
9999
for (IOTask next: ioTasks) {
100100
next.setup(ioio);

ioio/src/main/java/net/sourceforge/smallbasic/ioio/IOTask.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package net.sourceforge.smallbasic.ioio;
22

3-
import ioio.lib.api.IOIO;
4-
import ioio.lib.api.exception.ConnectionLostException;
5-
63
import java.io.Closeable;
74
import java.io.IOException;
85

6+
import ioio.lib.api.IOIO;
7+
import ioio.lib.api.exception.ConnectionLostException;
8+
99
/**
1010
* IOTask - setup() and loop() are invoked in the looper thread
1111
* whereas specific task methods are invoked from the SB thread

ioio/src/main/java/net/sourceforge/smallbasic/ioio/PulseInputImpl.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
public class PulseInputImpl extends IOTask implements PulseInput {
99
private static final String TAG = "PulseInput";
1010
private static final PulseInput.PulseMode pulseMode = PulseInput.PulseMode.NEGATIVE;
11-
private static final IOLock<PulseInput> lock = new IOLock<>();
11+
private final IOLock<PulseInput> lock = new IOLock<>();
1212
private PulseInput input;
1313

1414
public PulseInputImpl() {
@@ -24,32 +24,32 @@ public void close() {
2424
}
2525

2626
@Override
27-
public float getDuration() throws InterruptedException, ConnectionLostException {
27+
public float getDuration() {
2828
return lock.invoke(PulseInput::getDuration);
2929
}
3030

3131
@Override
32-
public float getDurationBuffered() throws InterruptedException, ConnectionLostException {
32+
public float getDurationBuffered() {
3333
return lock.invoke(PulseInput::getDurationBuffered);
3434
}
3535

3636
@Override
37-
public float getDurationSync() throws InterruptedException, ConnectionLostException {
37+
public float getDurationSync() {
3838
return lock.invoke(PulseInput::getDurationSync);
3939
}
4040

4141
@Override
42-
public float getFrequency() throws InterruptedException, ConnectionLostException {
42+
public float getFrequency() {
4343
return lock.invoke(PulseInput::getFrequency);
4444
}
4545

4646
@Override
47-
public float getFrequencySync() throws InterruptedException, ConnectionLostException {
47+
public float getFrequencySync() {
4848
return lock.invoke(PulseInput::getFrequencySync);
4949
}
5050

5151
@Override
52-
public void loop() throws InterruptedException, ConnectionLostException {
52+
public void loop() {
5353
lock.process(input);
5454
}
5555

@@ -65,7 +65,7 @@ public void setup(IOIO ioio) {
6565
}
6666

6767
@Override
68-
public float waitPulseGetDuration() throws InterruptedException, ConnectionLostException {
69-
throw new UnsupportedOperationException();
68+
public float waitPulseGetDuration() {
69+
return lock.invoke(PulseInput::getDurationBuffered);
7070
}
7171
}

0 commit comments

Comments
 (0)