exec method

Future<void> exec(
  1. {required CameraImage cameraImage,
  2. required Person person,
  3. required EvaluatePose evaluatePose}
)

Implementation

Future<void> exec(
    {required CameraImage cameraImage,
    required Person person,
    required EvaluatePose evaluatePose}) async {
  try {
    final image = await _convertCameraImageSerivce.exec(cameraImage);
    final imageFilePath = await _fileService.saveImageToLocalTemporary(
      fileName: 'capture.png',
      image: image,
    );

    // personのCSVデータ
    final personCsvData = person.toCsv;
    final personCsvFilePath = await _saveCsvToLocalStorageService.exec(
      fileName: 'person.csv',
      csvData: personCsvData,
      fileMode: FileMode.write,
    );

    // inputのCSVデータ
    final inputCsvData = evaluatePose.toInputCsv;
    final inputCsvFilePath = await _saveCsvToLocalStorageService.exec(
      fileName: 'input.csv',
      csvData: inputCsvData,
      fileMode: FileMode.write,
    );

    // outputのCSVデータ
    final outputCsvData = evaluatePose.toOutputCsv;
    final outputCsvFilePath = await _saveCsvToLocalStorageService.exec(
      fileName: 'output.csv',
      csvData: outputCsvData,
      fileMode: FileMode.write,
    );

    // zipファイルに圧縮
    final zipFilePath = await _fileService.zipImageAndCsv(
      zipFileName: '${DateTime.now().stringDateyyyyMMddHHmmss}.zip',
      imageFilePath: imageFilePath,
      csvFilePath: [personCsvFilePath, inputCsvFilePath, outputCsvFilePath],
    );

    // firebase storageにアップロード
    await _uploadInferenceDebugDataRepository.exec(
      filePath: zipFilePath,
      fileName: '${DateTime.now().stringDateyyyyMMddHHmmss}.zip',
    );

    if (kDebugMode) {
      print('imageFilePath: $imageFilePath');
      developer.log('personCsvData: $personCsvData');
      print('personCsvFilePath: $personCsvFilePath');
      print('zipFilePath: $zipFilePath');
    }
  } catch (e) {
    if (kDebugMode) {
      print('saveCapture error: $e');
    }
  }
}