Skip to content

Commit 0e84278

Browse files
committed
Create integration test for bar 30 sensor
1 parent 3da07e4 commit 0e84278

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package com.easternedgerobotics.rov.integration;
2+
3+
import com.easternedgerobotics.rov.config.LaunchConfig;
4+
import com.easternedgerobotics.rov.config.MockLaunchConfig;
5+
import com.easternedgerobotics.rov.event.BroadcastEventPublisher;
6+
import com.easternedgerobotics.rov.event.EventPublisher;
7+
import com.easternedgerobotics.rov.io.Bar30PressureSensor;
8+
import com.easternedgerobotics.rov.io.rpi.RaspberryI2CBus;
9+
10+
import com.pi4j.io.i2c.I2CBus;
11+
import rx.Observable;
12+
import rx.broadcast.BasicOrder;
13+
import rx.broadcast.UdpBroadcast;
14+
import rx.schedulers.Schedulers;
15+
16+
import java.net.DatagramSocket;
17+
import java.net.InetAddress;
18+
import java.net.SocketException;
19+
import java.net.UnknownHostException;
20+
import java.util.concurrent.TimeUnit;
21+
22+
public final class Bar30PressureSensorTest {
23+
private Bar30PressureSensorTest() {
24+
25+
}
26+
27+
public static void main(final String[] args) throws UnknownHostException, SocketException, InterruptedException {
28+
final LaunchConfig launchConfig = new MockLaunchConfig();
29+
final InetAddress broadcastAddress = InetAddress.getByName(launchConfig.broadcast());
30+
final int broadcastPort = launchConfig.defaultBroadcastPort();
31+
final EventPublisher eventPublisher = new BroadcastEventPublisher(new UdpBroadcast<>(
32+
new DatagramSocket(broadcastPort), broadcastAddress, broadcastPort, new BasicOrder<>()));
33+
34+
final int duration = 500;
35+
final Bar30PressureSensor bar30PressureSensor = new Bar30PressureSensor(
36+
new RaspberryI2CBus(I2CBus.BUS_1).get(Bar30PressureSensor.ADDRESS), Schedulers.newThread(), duration);
37+
38+
final int sleepTime = 1000;
39+
Thread.sleep(sleepTime);
40+
41+
Observable.interval(duration, TimeUnit.MILLISECONDS, Schedulers.io()).subscribe(tick -> {
42+
eventPublisher.emit(bar30PressureSensor.pressure());
43+
eventPublisher.emit(bar30PressureSensor.temperature());
44+
});
45+
46+
eventPublisher.await();
47+
}
48+
}

0 commit comments

Comments
 (0)