Multiplatform Java library for USB relay control
5v 2 Channel USB Relay Module
5v 1 Channel USB Relay Module
- Windows (using vendors API library)
- Linux (need libusb to be installed)
- Apple OS X (with pre-installed Xcode and plain IOKit libraries)
Also Python (CPython) library is available for testing purposes.
Add in your pom.xml repository part:
<repository>
<id>jusbrelay-mvn-repo</id>
<url>https://raw.github.com/creepid/jusbrelay/mvn-repo/</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>always</updatePolicy>
</snapshots>
</repository>
And dependency:
<dependency>
<groupId>by.creepid</groupId>
<artifactId>jusbrelay</artifactId>
<version>0.1</version>
</dependency>
UsbRelayManager manager = NativeUsbRelayManager.getInstance();
try {
//init manager
manager.relayInit();
//enumerate devices
UsbRelayDeviceInfo[] devices = manager.deviceEnumerate();
for (int i = 0; i < devices.length; i++) {
UsbRelayDeviceInfo usbRelayDeviceInfo = devices[i];
//retrieve device handler
UsbRelayDeviceHandler handler = manager.deviceOpen(usbRelayDeviceInfo.getSerialNumber());
//change relay status
//turning on the relay, index - channel number
//Get device status
UsbRelayStatus[] statuses = manager.getStatus(usbRelayDeviceInfo.getSerialNumber(), handler);
//close relay
manager.closeRelay(handler);
}
} catch (UsbRelayException ex) {
//catch exceptions
} finally {
//close manager
manager.relayExit();
}