Jan Schmidt
0fab912c5c
d/wmr: Add debug gain control
...
Add a control to the debug UI for adjusting the
camera gain setting when testing.
2021-11-25 20:05:10 +11:00
Jakob Bornecrantz
63701511eb
d/wmr: Tidy
2021-11-24 17:12:19 +00:00
Christoph Haag
01c6e4ed28
d/wmr: make wmr_config_key static
...
OpenHMD has a global variable wmr_config_key too which is exported in some
build configurations, causing Monado to fail linking openhmd and the wmr
driver together.
2021-11-24 14:36:55 +00:00
Jakob Bornecrantz
3f98ea5595
xrt: Tidy s/ll/log_level/g
...
Also make sure all variable logging uses the right type for logging variables.
2021-11-22 14:29:10 -06:00
Jakob Bornecrantz
839ada7115
d/wmr: Add more to the I/O
2021-11-20 18:54:16 +00:00
Jakob Bornecrantz
7fa3109e2a
d/wmr: Minimum to bind and return a pose
2021-11-20 17:44:34 +00:00
Jakob Bornecrantz
673ac5ee6c
d/wmr: Add support for Samsung Odyssey controllers
2021-11-20 17:33:25 +00:00
Jakob Bornecrantz
ea38309c86
d/wmr: Bracemaggedon
2021-11-20 15:37:15 +00:00
Jakob Bornecrantz
50e0e7783e
d/wmr: Shuffle and group things in camera file
2021-11-20 15:00:02 +00:00
Jakob Bornecrantz
85f79f935b
d/wmr: Tidy
2021-11-20 15:00:02 +00:00
Jakob Bornecrantz
1441453d5f
d/wmr: Add log level to variable tracking
2021-11-20 13:54:51 +00:00
Jakob Bornecrantz
4329b755a9
d/wmr: Document camera start and constify argument
2021-11-20 13:50:54 +00:00
Jakob Bornecrantz
16c75e7cc7
d/wmr: Tidy variable tracking
2021-11-20 13:29:24 +00:00
Jan Schmidt
733d463ec4
d/wmr: Use proximity sensor value in IPD message.
...
The first byte after the packet ID toggles when
the proximity sensor is activated.
2021-11-20 12:52:45 +00:00
Jan Schmidt
5efe0da713
d/wmr: Handle 0x17 packets
...
Add a debug report for 0x17 packets on Reverb G2 that
report controller statuses. The statuses seen so far
are 0x0 for unpaired, 0x1 for paired but offline, and
0x2 for online. Paired reports provide VID and PID for the
associated motion controller.
2021-11-20 12:52:45 +00:00
Jan Schmidt
7b95755f07
d/wmr: Implement bluetooth debug message handling
...
Handle the debug message packet from the bluetooth
interface on the HP G2. There might be other packet
types, but that's the only one I've seen so far.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e0b5070f49
d/wmr: Rename controller related packets
...
Rename the controller and bluetooth related packets
according to their usage, and split out the
controller update handling function.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e18288cc57
d/wmr: Ignore all other packets when reading config
...
Any other WMR packets can arrive while we're reading the
config block - ignore all of them, not just a few. Fixes
config reading failures.
2021-11-20 12:52:45 +00:00
Jan Schmidt
a14d6f1c2b
d/wmr: Parse and log HMD debug messages
2021-11-20 12:52:45 +00:00
Jan Schmidt
6bb2972443
d/wmr: Set default camera gain
...
Add API for gain control on headset cameras,
and use it to set a mid-range default exposure gain
2021-11-20 12:52:45 +00:00
Jan Schmidt
0da1bd74ce
d/wmr: Debug output for camera frames
...
Compute the frame size required for the cameras on a given
headset.
Copy the pixels out into an xrt_frame, then send it
to a debug sink - one for SLAM tracking exposures, and
1 for controller frames.
Based on a patch by Jakob Bornecrantz
2021-11-20 12:52:45 +00:00
Jan Schmidt
5fe935a5b0
d/wmr: Add camera reading loop
...
Calculate and configure USB transfers to read the
cameras on a WMR headset. Needs more work to
make use of the received frames.
2021-11-20 12:52:45 +00:00
Jan Schmidt
e422be89fa
d/wmr: Add camera configuration block parsing
...
Read camera configuration info from the HMD JSON
block
2021-11-20 12:52:45 +00:00
Jan Schmidt
7fb94889a8
d/wmr: Fix a small lock handling mistake
...
In the wmr handling thread, make sure lock
handling is symmetrical in all code paths.
2021-11-20 12:52:45 +00:00
Nima01
e536a02b33
d/wmr: Factor out parsing of controller messages and minor cleanup.
2021-11-18 17:19:07 +00:00
Nima01
c4db3dfccc
d/wmr: Add basic Reverb (G1, Bluetooth) motion controller support.
2021-11-18 17:19:07 +00:00
Nima01
acd8a0986e
d/wmr: Prepare for WMR motion controller driver - Change ambiguous names and traces.
2021-11-18 17:19:07 +00:00
Jakob Bornecrantz
79ec1bd695
d/wmr: Add basic support for Samsung Odyssey+
...
Display start-up sequence still probably needed.
2021-11-13 12:36:25 +00:00
Ryan Pavlik
0fa5876a5c
drivers: Add references to xrt_prober_found_function_t in all relevant docs
2021-11-13 12:29:58 +00:00
Ryan Pavlik
2e323add6f
drivers: Migrate num_ to _count
2021-11-13 12:04:38 +00:00
Jason McNew
fd065cca6e
d/wmr: Fix segfault if unsupported HoloLens Sensors device is present.
2021-10-31 17:07:55 +00:00
Ryan Pavlik
b62fb33e36
d/wmr: Fix some truncation warnings.
2021-10-19 16:11:34 -05:00
Jan Schmidt
8192e74f76
d/wmr: Compute visible region for render rectangle.
...
Use the distortion function to calculate the visible limits of the
display and then configure the rendered FoV angles accordingly.
2021-06-26 03:52:32 +10:00
Jan Schmidt
dfe932ffd7
d/wmr: Add an extensible headset map.
...
Add a mechanism for recognising known headsets and handling specific
init/deinit sequences for those that need it.
2021-06-26 03:52:29 +10:00
Dan Weatherford
6bb3577b1b
d/wmr: Implement Lenovo explorer support.
...
Recognise the Lenovo explorer device
2021-06-26 03:52:29 +10:00
Jan Schmidt
bad625965a
d/wmr: Extract JSON configuration from the firmware.
...
Pull in the WMR config obfuscation key and extract the JSON
calibration data.
Based on a patch from Dan Weatherford <sabretooth@gmail.com>
2021-06-26 03:52:26 +10:00
Dan Weatherford
3ca80e9607
d/wmr: Add functions to read raw config data
...
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-26 03:52:26 +10:00
Jan Schmidt
0cf7b4a9b3
d/wmr: Add render distortion configuration
...
Take the parameters from the headset configuration and the existing
render FoV, and use them to instantiate a distortion mesh.
TODO: Reverse the distortion in order to calculate good FoV range
that covers the full view for each headset.
2021-06-26 03:52:23 +10:00
Jan Schmidt
f663727b07
d/wmr: Add some groundwork for config parsing.
...
Sketch out some groundwork for parsing WMR config blocks,
using some hard-coded values from my headset for now. Later,
this will be parsed from the headset JSON blob.
2021-06-26 03:52:16 +10:00
Ryan Pavlik
348b7dff3a
d/wmr: fix doxygen warning
2021-05-04 11:21:46 -05:00
Ryan Pavlik
4ef5b65487
d/wmr: Fix typo
2021-04-30 17:57:50 -05:00
Jakob Bornecrantz
daccde940e
d/wmr: Fix accel axis conversion
2021-04-28 23:26:09 +00:00
Jakob Bornecrantz
8277df418d
xrt: Make eye_relation argument to xrt_device_get_view_pose const (NFC)
2021-04-27 01:44:13 +01:00
Ryan Pavlik
e44c6d56c7
d/wmr: Port to u_device_get_view_pose
2021-04-26 22:38:42 +00:00
Jakob Bornecrantz
1ef79820e6
d/wmr: Clarify struct layout (NFC)
2021-04-23 22:48:56 +01:00
Jakob Bornecrantz
0807ce6ddd
d/wmr: Only take the lock once per received packet
2021-04-23 22:47:40 +01:00
Jakob Bornecrantz
13d127035b
d/wmr: Remove raw_accel and raw_gyro fields (NFC)
2021-04-23 19:06:05 +01:00
Jakob Bornecrantz
1b4b180e61
d/wmr: Do prediction when returning poses
2021-04-23 18:24:13 +01:00
Jakob Bornecrantz
a41a869c71
d/wmr: Rename variables and tidy code (NFC)
2021-04-23 14:50:58 +01:00
Christoph Haag
2b70189b45
d/wmr: log at least one space in trace log
...
Fixes warnings
../src/xrt/drivers/wmr/wmr_hmd.c:83:16: warning: zero-length gnu_printf format string [-Wformat-zero-length]
83 | WMR_TRACE(wh, "");
| ^~
2021-04-22 02:41:48 +02:00