binaryDataByFilter method

Future<BinaryDataByFilterResponse> binaryDataByFilter({
  1. Filter? filter,
  2. int? limit,
  3. Order? sortOrder,
  4. String? last,
  5. bool countOnly = false,
  6. bool includeBinary = false,
})

Filter and download binary data. The data will be paginated into pages of limit items, and the last ID will be included in the returned response.

_viam = await Viam.withApiKey(
    dotenv.env['API_KEY_ID'] ?? '',
    dotenv.env['API_KEY'] ?? ''
);
final dataClient = _viam.dataClient;

try {
 // Create a filter to target specific binary data
 final filter = Filter(
  componentName: "camera-1",
 );

 final response = await dataClient.binaryDataByFilter(filter: filter, limit: 1);

 print('Number of items: ${response.count.toInt()}');
 print('Total size: ${response.totalSizeBytes.toInt()} bytes');
 for (var dataPoint in response.data) {
   print(dataPoint.binary);
   print(dataPoint.metadata);
 }

 print('Successfully retrieved binary data by filter');
} catch (e) {
 print('Error retrieving binary data by filter: $e');
}

For more information, see Data Client API.

Implementation

Future<BinaryDataByFilterResponse> binaryDataByFilter(
    {Filter? filter, int? limit, Order? sortOrder, String? last, bool countOnly = false, bool includeBinary = false}) async {
  final dataRequest = _makeDataRequest(filter, limit, last, sortOrder);
  final request = BinaryDataByFilterRequest()
    ..dataRequest = dataRequest
    ..countOnly = countOnly
    ..includeBinary = includeBinary;
  return await _dataClient.binaryDataByFilter(request);
}