getLatestTabularData method

Future<({Map<String, dynamic> payload, DateTime timeCaptured, DateTime timeSynced})?> getLatestTabularData(
  1. String partId,
  2. String resourceName,
  3. String resourceSubtype,
  4. String methodName,
)

Gets the most recent tabular data captured from the specified data source, as long as it was synced within the last year.

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

 try {
   // Get latest tabular data
   final response = await dataClient.getLatestTabularData(
     "<YOUR-PART-ID>",
     "movement_sensor-1",
     "rdk:component:movement_sensor",
     "Position"
   );
   print('Successfully retrieved latest tabular data: $response');
 } catch (e) {
   print('Error retrieving latest tabular data: $e');
 }

For more information, see Data Client API.

Implementation

Future<({DateTime timeCaptured, DateTime timeSynced, Map<String, dynamic> payload})?> getLatestTabularData(
  String partId,
  String resourceName,
  String resourceSubtype,
  String methodName,
) async {
  final request = GetLatestTabularDataRequest()
    ..partId = partId
    ..resourceName = resourceName
    ..resourceSubtype = resourceSubtype
    ..methodName = methodName;

  final response = await _dataClient.getLatestTabularData(request);

  if (!response.hasPayload() || !response.hasTimeCaptured() || !response.hasTimeSynced()) {
    return null;
  }

  return (
    timeCaptured: response.timeCaptured.toDateTime(),
    timeSynced: response.timeSynced.toDateTime(),
    payload: response.payload.toMap(),
  );
}