battery method
Implementation
Future<int> battery() async {
_ensureConnected();
final batteryFeature = features.values.cast<ButtplugClientDeviceFeature?>().firstWhere(
(feature) => feature!.feature.input?[InputType.battery]?.command.any(
(command) => command.toLowerCase() == InputCommand.read.name.toLowerCase(),
) ?? false,
orElse: () => null,
);
if (batteryFeature == null) {
throw ButtplugClientDeviceFeatureCapabilityException(
'$name does not support readable battery commands',
);
}
final ret = await batteryFeature.readInput(InputType.battery);
final battery = ret[InputType.battery];
if (battery == null) {
throw ButtplugClientDeviceFeatureCapabilityException("Didn't get back battery return: $ret");
}
return battery.value;
}