|
| 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