Does PD include a specification that allows a client device to share its current battery level? How does Apriv know which device “needs” a high output level?
> Using dual-port modules, the system recognizes that, say, one smartphone battery in the vehicle is at 5 percent of capacity and a second phone is at 75 percent. The programming module gives the former device 100W and the latter 25W.
USB-PD 3.1 provides both a Get_Battery_Cap message, which asks the sink to tell the source the capacity of its battery) and a Get_Battery_Status message, which asks the sink to inform the source about the current charge of its battery.
And then the MBP will send a Get_Battery_Status again, and so on. (Example capture here: https://imgur.com/a/TI5maV0
What's really cool is that this exchange happens both ways—the iPad also sends a Get_Battery_Cap message to the MBP, because it is also capable of acting as a source, and, if the laptop's battery drops sufficiently low, the source/sink roles may swap (using a DR_Swap message) so that the iPad ends up charging the MBP!
> Using dual-port modules, the system recognizes that, say, one smartphone battery in the vehicle is at 5 percent of capacity and a second phone is at 75 percent. The programming module gives the former device 100W and the latter 25W.