battery method

Future<int> battery()

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;
}