@risa2000 Thanks for the tips about your implementation. Due to my limited testing not showing issues I left the default 30 seconds found in the original script from @TheMalkavien.
I’m going to put the timeout as configurable option in the .ini file.
Do we know the max timeout value that is accepted via the ble command?
The thread pooling the BS will keep track of the time at which the latest successful ping was executed and will attempt re-sending every 5 seconds until near the timeout is reached.
If the ping command can’t be delivered it will revert to wakeup and again to ping if the wakeup is successful.
As pointed out by @Heliosurge is very likely the piservice handling the communication with the HS and its BT module.
Don’t worry, we’ll not need to run Pitool in the background
I don’t think SteamVR has any knowledge of the BT module in the HS.
The pi_server.exe is interacting with the BS, not only for pairing and tracking; they are put into standby once the HS goes into standby as well and they don’t if Pitool is not running.
pi_server is also pinging with keepalive the BS, for whatever reason @PimaxUSA just didn’t implement the basic wakeup/standby commands…
You can find the pvr_srv_log_* files in %appdata%…\Local\Pimax\runtime folder:
[19-09-07 01:59:00][PSRV] lightHouse:53DC330F16: Triggered keepalive (succeeded)
[19-09-07 01:59:00][PSRV] lightHouse:53DC330F16: Packet received after 0.150s, keepalive (0/1)
They can also query the mode and identify the B station:
[19-09-07 00:41:33][PSRV] prop:Prop_ManufacturerName_String:HTC
[19-09-07 00:41:33][PSRV] prop:Prop_ResourceRoot_String:htc
[19-09-07 00:41:33][PSRV] prop:Prop_ModeLabel_String:B
[19-09-07 00:41:33][PSRV] prop:Prop_ModelNumber_String:HTC V2-XD/XE
[19-09-07 00:41:33][PSRV] prop:Prop_RenderModelName_String:lh_basestation_vive
Hope with the BT analyser I can find it out how and stop pinging the passive BS.
But really, huge thumbs down to @PimaxUSA for this.
I’m having fun coding in Python after so many years but it’s all quite pointless!