Skip to content

Commit 827e2ce

Browse files
ImUrXsctanf
andauthored
update hid4java to 0.8 (#992)
Co-authored-by: sctanf <36978460+sctanf@users.noreply.github.com>
1 parent ae4391b commit 827e2ce

File tree

3 files changed

+10
-4
lines changed

3 files changed

+10
-4
lines changed

flake.nix

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,7 @@
9696
expat
9797
libayatana-appindicator
9898
libusb1
99+
libudev-zero
99100
])
100101
++ lib.optionals pkgs.stdenv.isDarwin [
101102
pkgs.darwin.apple_sdk.frameworks.Security

server/desktop/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ dependencies {
5959
implementation("net.java.dev.jna:jna:5.+")
6060
implementation("net.java.dev.jna:jna-platform:5.+")
6161
implementation("com.fazecast:jSerialComm:2.10.2")
62-
implementation("org.hid4java:hid4java:0.7.0")
62+
implementation("org.hid4java:hid4java:0.8.0")
6363
}
6464

6565
tasks.shadowJar {

server/desktop/src/main/java/dev/slimevr/desktop/tracking/trackers/hid/TrackersHID.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ class TrackersHID(name: String, private val trackersConsumer: Consumer<Tracker>)
3232
private val hidServices: HidServices
3333

3434
init {
35-
hidServicesSpecification.isAutoStart = false
35+
hidServicesSpecification.setAutoStart(false)
3636
hidServices = HidManager.getHidServices(hidServicesSpecification)
3737
hidServices.addHidServicesListener(this)
3838
val dataReadThread = Thread(dataReadRunnable)
@@ -43,7 +43,7 @@ class TrackersHID(name: String, private val trackersConsumer: Consumer<Tracker>)
4343

4444
private fun checkConfigureDevice(hidDevice: HidDevice) {
4545
if (hidDevice.vendorId == 0x2FE3 && hidDevice.productId == 0x5652) { // TODO: Use correct ids
46-
if (!hidDevice.isOpen) {
46+
if (hidDevice.isClosed) {
4747
check(hidDevice.open()) { "Unable to open device" }
4848
}
4949
// TODO: Configure the device here
@@ -164,7 +164,7 @@ class TrackersHID(name: String, private val trackersConsumer: Consumer<Tracker>)
164164
var devicesPresent = false
165165
for ((hidDevice, deviceList) in devicesByHID) {
166166
val dataReceived: Array<Byte> = try {
167-
hidDevice.read(80, 1) // Read up to 80 bytes, timeout 1ms
167+
hidDevice.read(80, 0) // Read up to 80 bytes
168168
} catch (e: NegativeArraySizeException) {
169169
continue // Skip devices with read error (Maybe disconnected)
170170
}
@@ -174,6 +174,7 @@ class TrackersHID(name: String, private val trackersConsumer: Consumer<Tracker>)
174174
// TODO: make this less bad
175175
if (dataReceived.size % 20 != 0) {
176176
LogManager.info("[TrackerServer] Malformed HID packet, ignoring")
177+
continue // Don't continue with this data
177178
}
178179
val packetCount = dataReceived.size / 20
179180
var i = 0
@@ -243,6 +244,10 @@ class TrackersHID(name: String, private val trackersConsumer: Consumer<Tracker>)
243244
// TODO:
244245
}
245246

247+
override fun hidDataReceived(p0: HidServicesEvent?) {
248+
// Seems to have issues with the size of data returned
249+
}
250+
246251
companion object {
247252
/**
248253
* Change between IMU axes and OpenGL/SteamVR axes

0 commit comments

Comments
 (0)