Skip to content

Multi-platform library for USB relay devices management on Java

Notifications You must be signed in to change notification settings

rusakovichma/jusbrelay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

jusbrelay

Multiplatform Java library for USB relay control

Device examples

5v 2 Channel USB Relay Module
5v 1 Channel USB Relay Module

Supported platforms

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

How to use?

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>

Code examples

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();
}