exec method
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');
}
}
}