Skip to content

Commit

Permalink
Send Tracker Battery Info to SteamVR (#668)
Browse files Browse the repository at this point in the history
* implement battery support

Co-authored-by: NWB <[email protected]>

* undo solarxr

* spotless

* Improved battery level aggregation

When chest and knee trackers are disabled in SteamVR, they should now aggregate their battery level with waist and foot trackers respectively.

Moved SteamVR-specific writeBatteryUpdate() and batteryReceived() to SteamVRBridge. Some battery stuff is still left in ProtobufBridge, but only what's necessary.

* Aggregate Waist and Hip with Chest

When waist is disabled, and chest is enabled, waist and hip battery levels will aggregate with the chest tracker.

* Comments & Minor Fixes

Added descriptive comments, and fixed lowestLevel not checking for >= 200. Also fixed right knee aggregating with right ankle/foot.

* Spotless

Applied spotless.

* Spotless

Applied spotless >_>

---------

Co-authored-by: ImUrX <[email protected]>
Co-authored-by: Erimel <[email protected]>
  • Loading branch information
3 people authored Jun 1, 2023
1 parent 760f775 commit 6a9b5cd
Show file tree
Hide file tree
Showing 3 changed files with 6,055 additions and 4,899 deletions.
16 changes: 16 additions & 0 deletions server/src/main/java/dev/slimevr/bridge/ProtobufBridge.java
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,8 @@ protected void trackerOverrideUpdate(Tracker source, Tracker target) {
target.setPosition(source.getPosition());
target.setRotation(source.getRotation());
target.setStatus(source.getStatus());
target.setBatteryLevel(source.getBatteryLevel());
target.setBatteryVoltage(source.getBatteryVoltage());
target.dataTick();
}

Expand All @@ -103,6 +105,7 @@ public void dataWrite() {
return;
for (Tracker tracker : sharedTrackers) {
writeTrackerUpdate(tracker);
writeBatteryUpdate(tracker);
}
}

Expand All @@ -125,6 +128,12 @@ protected void writeTrackerUpdate(Tracker localTracker) {
sendMessage(ProtobufMessage.newBuilder().setPosition(builder).build());
}

@VRServerThread
protected void writeBatteryUpdate(Tracker localTracker) {
return;
};


@VRServerThread
protected void processMessageReceived(ProtobufMessage message) {
// if(!message.hasPosition())
Expand All @@ -137,6 +146,8 @@ protected void processMessageReceived(ProtobufMessage message) {
trackerStatusReceived(message.getTrackerStatus());
} else if (message.hasTrackerAdded()) {
trackerAddedReceived(message.getTrackerAdded());
} else if (message.hasBattery()) {
batteryReceived(message.getBattery());
}
}

Expand Down Expand Up @@ -167,6 +178,11 @@ protected void positionReceived(Position positionMessage) {
}
}

@VRServerThread
protected void batteryReceived(Battery batteryMessage) {
return;
};

@VRServerThread
protected abstract Tracker createNewTracker(TrackerAdded trackerAdded);

Expand Down
Loading

0 comments on commit 6a9b5cd

Please sign in to comment.